Changes

Jump to: navigation, search

SecurityEngineering/Certificate Verification

1 byte added, 23:30, 17 October 2019
fix typo
== mozilla::pkix ==
mozilla::pkix was originally implemented as part of mozilla-central (i.e. gecko) but has since been moved into NSS. However, it is not part of NSS' stable C API. As a library, mozilla::pkix uses the notion of a "trust domain" provided by the application to build a trusted chain from an end-entity certificate to a root. The trust domain is responsible for saying what trust level a certificate has, finding potential issuers of a certificate, and checking the revocation for a certificate. A certificate can be a trust anchor, it can inherit its trust, or it can be actively distrusted. Given an end-entity certificate and a trust domain, the library will perform issuer-independent checks on that certificate (e.g. expiration, appropriate key usages), get a list of potential issuers, and perform a depth-first traversal. If it encounters a distrusted certificate, it abandons searching that path. If it finds a trust anchor, it queries the trust domain again to see if that path is acceptable (this is where gecko implements checks that are specific to the platform at and not the abstract problem of building a trusted certificate chain). If so, the end-entity certificate has successfully been verified.
Unlike the other NSS libraries, mozilla::pkix is written in C++ and can take advantage of more modern language features.
Confirm
300
edits

Navigation menu