rustls-webpki

WebPKI X.509 Certificate Validation in Rust

Latest version: 0.103.13 registry icon
Maintenance score
100
Safety score
94
Popularity score
81
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
0.103.13 0 0 0 0 0
0.103.12 0 0 1 0 0
0.103.11 0 0 3 0 0
0.103.10 0 0 3 0 0
0.103.9 0 0 4 0 0
0.103.8 0 0 4 0 0
0.103.7 0 0 4 0 0
0.103.6 0 0 4 0 0
0.103.5 0 0 4 0 0
0.103.4 0 0 4 0 0
0.103.3 0 0 4 0 0
0.103.2 0 0 4 0 0
0.103.1 0 0 4 0 0
0.103.0 0 0 4 0 0
0.102.8 0 0 4 0 0
0.102.7 0 0 4 0 0
0.102.6 0 0 4 0 0
0.102.5 0 0 4 0 0
0.102.4 0 0 4 0 0
0.102.3 0 0 4 0 0
0.102.2 0 0 4 0 0
0.102.1 0 0 4 0 0
0.102.0 0 0 4 0 0
0.101.7 0 0 3 0 0
0.101.6 0 0 3 0 0
0.101.5 0 0 3 0 0
0.101.4 0 0 3 0 0
0.101.3 0 0 4 0 0
0.101.2 0 0 4 0 0
0.101.1 0 0 4 0 0
0.101.0 0 0 4 0 0
0.100.3 0 0 3 0 0
0.100.2 0 0 3 0 0
0.100.1 0 0 4 0 0
0.100.0 0 0 4 0 0

Stability
Latest release:

0.103.13 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

ISC   -   ISC License

Not a wildcard

Not proprietary

OSI Compliant



Build Status Coverage Status (codecov.io) Documentation Chat

webpki is a library that validates Web PKI (TLS/SSL) certificates. It's used by Rustls to handle certificate-related tasks required for implementing TLS clients and servers.

webpki is written in Rust. It does not provide any built-in cryptography providers, but was written to interoperate with the rustls-aws-lc-rs and rustls-ring crates, or a custom implementation of the rustls CryptoProvider struct backed by your cryptography library of choice.

This is a fork of the original webpki project which adds a number of features required by the rustls project. This fork is released as the rustls-webpki crate, with versions starting 0.100.0 so as to not confusingly overlap with webpki versions.

Features

  • Representing trust anchors - webpki requires the caller to bootstrap trust by explicitly specifying a set of trust anchors using the TrustAnchor type.

  • Parsing certificates - webpki can convert from the raw encoded form of a certificate into something that can be used for making trust decisions.

  • Path building - webpki can determine if a certificate for an end entity like a website or client identity was issued by a trust anchor, or a series of intermediate certificates the trust anchor has endorsed.

  • Name/usage validation - webpki can determine if a certificate is valid for a given DNS name or IP address by considering the allowed usage of the certificate and additional constraints.

Limitations

webpki offers a minimal feature set tailored to the needs of Rustls. Notably it does not offer:

  • Support for self-signed certificates
  • Certificate or keypair generation
  • Access to arbitrary certificate extensions
  • Parsing/representation of certificate subjects, or human-friendly display of these fields

For these tasks you may prefer using webpki in combination with libraries like x509-parser and rcgen.

Changelog

Release history can be found on GitHub.

Demo

See https://github.com/rustls/rustls#example-code for an example of using webpki.

License

See LICENSE. This project happily accepts pull requests without any formal copyright/contributor license agreement.

Bug Reporting

Please refer to the SECURITY policy for security issues. All other bugs should be reported as GitHub issues.