• 
      

    Add base classes for representing certificates, bundles, and fingerprints.

    Review Request #13158 — Created July 20, 2023 and submitted

    Information

    Review Board
    release-6.x

    Reviewers

    This introduces a new reviewboard.certs module, which will be used for
    all SSL/TLS certificate management support going forward.

    It currently contains representations for SSL/TLS certificates + keys,
    CA bundles (containing root certs and intermediary certs), and
    fingerprints.

    We utilize cryptography's certificate support for parsing out
    information from a certificate, such as validity dates and fingerprints,
    in order to avoid duplication of effort. These are lazily-parsed as
    needed. The goal is to avoid loading this information when just passing
    around basic certificate information.

    Going forward, the plans are to introduce a CertificateManager for
    fetching/storing/deleting paths/data for certificates, and backends to
    actually handle those operations. The default backend will manage this
    in the data/ directory.

    We'll then begin to build UI around this and tie the manager into auth,
    repository, and WebHook operations, allowing people to begin formally
    providing self-signed certificates and internal CA-signed certificates
    into all Review Board communication.

    Unit tests pass.

    Summary ID
    Add base classes for representing certificates, bundles, and fingerprints.
    This introduces a new `reviewboard.certs` module, which will be used for all SSL/TLS certificate management support going forward. It currently contains representations for SSL/TLS certificates + keys, CA bundles (containing root certs and intermediary certs), and fingerprints. We utilize `cryptography`'s certificate support for parsing out information from a certificate, such as validity dates and fingerprints, in order to avoid duplication of effort. These are lazily-parsed as needed. The goal is to avoid loading this information when just passing around basic certificate information. Going forward, the plans are to introduce a `CertificateManager` for fetching/storing/deleting paths/data for certificates, and backends to actually handle those operations. The default backend will manage this in the `data/` directory. We'll then begin to build UI around this and tie the manager into auth, repository, and WebHook operations, allowing people to begin formally providing self-signed certificates and internal CA-signed certificates into all Review Board communication.
    a70e95990f5f8cb28b437bd6d5130299c90bca6a
    Description From Last Updated

    Missing documentation.

    maubinmaubin

    Do we want to say "optional" in the types here?

    daviddavid
    maubin
    1. 
        
    2. reviewboard/certs/cert.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      Missing documentation.

    3. 
        
    chipx86
    david
    1. 
        
    2. reviewboard/certs/cert.py (Diff revision 2)
       
       
       
       
       
       
      Show all issues

      Do we want to say "optional" in the types here?

    3. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-6.x (6403e68)