Uh oh!
There was an error while loading. Please reload this page.
x509-cert: make Name a new type over RdnSequence - #1499
Conversation
3a8da71 to
d059733CompareUh oh!
There was an error while loading. Please reload this page.
str4d
left a comment
There was a problem hiding this comment.
I didn't review the changes to tests, as I'm on my phone.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
b168e0d to
d9fbfc4Compare94ddacf to
32615ddComparebaloo
commented
Sep 6, 2024
I guess there would be value in a builder for name, but this PR is already large enough. |
cd16b39 to
cb27b48Compare@baloo some merge conflicts in the tests. Edit: oof, a lot more now, sorry. I'm done for now. |
This make `FromStr` documented way to build a name. This also exposes a set of getter methods to get elements from the name (CN, Org, ...).
cb27b48 to
593176cComparetarcieri
commented
Sep 10, 2024
Going to merge this both as an improvement and to avoid additional merge conflicts |
Added - Serial number generator ([RustCrypto#1270]) - `DecodeValue` for `x509_cert::time::Time` ([RustCrypto#1986]) - `FromStr` for `x509_cert::time::Time` ([RustCrypto#1961]) - impl `Hash` for `Name` ([RustCrypto#1764]) - impl `Ord` for `CrlReason` ([RustCrypto#1869]) - `DirectoryString::BmpString` ([RustCrypto#1794]) - `Crl` builder ([RustCrypto#1759]) - `Time::now` method ([RustCrypto#1761]) - `Validity::infinity` helper ([RustCrypto#1528]) - `Validity::new` method ([RustCrypto#1529]) - Re-export `spki` types without `*Owned` suffixes ([RustCrypto#1534]) - `x509_cert::builder::AsyncBuilder` using `AsyncSigner` ([RustCrypto#1280]) Changed - Decompose `AsExtension` into `Criticality + AsExtension` ([RustCrypto#2109]) - Improve extension API flexibility and ergonomics ([RustCrypto#2120]) - Expose `Profile` in the `CrlBuilder` ([RustCrypto#1870]) - Ensure a serial number can be stored in a database ([RustCrypto#1868]) - Move the CSR builder `x509_cert::request` ([RustCrypto#1581]) - Rename `x509_cert::builder::Profile` to `BuilderProfile` ([RustCrypto#1514] && [RustCrypto#1517]) - `Name` is now a new type over `RdnSequence` ([RustCrypto#1499]) - make `RelativeDistinguishedName` fields private ([RustCrypto#1510]) - make `RdnSequence` fields private ([RustCrypto#1508]) - make (Tbs)`CertificateInner` fields private ([RustCrypto#1505]) - rename helpers to `get_extension`/`filter_extensions` ([RustCrypto#1497]) - `check_name_encoding` now allow extraneous components ([RustCrypto#1447]) - Accept RFC-invalid certificates as TrustAnchors ([RustCrypto#1403]) - Edition changed to 2024 and MSRV bumped to 1.85 ([RustCrypto#1689]) - Bump `rand` to `v0.10` ([RustCrypto#2212]) - Bump `der` to `v0.8` ([RustCrypto#2234]) - Bump `digest` to `v0.11` ([RustCrypto#2237]) - Bump `sha2` to `v0.11` ([RustCrypto#2273]) - Bump `spki` to `v0.8` ([RustCrypto#2277]) - Bump `signature` to `v3` ([RustCrypto#2326]) Fixed - Converting from `SystemTime` should use `UtcTime` if date <= 2049 ([RustCrypto#1969]) - Underflow on empty input in `Certificate::load_pem_chain` ([RustCrypto#1965]) - Domain validated should accept CNs ([RustCrypto#1815]) - Serialization of email addresses ([RustCrypto#1425]) Removed - Std requirement for `x509_cert::builder` ([RustCrypto#1709]) - `RelativeDistinguishedName::encode_from_string` ([RustCrypto#1509]) [RustCrypto#1270]: RustCrypto#1270 [RustCrypto#1280]: RustCrypto#1280 [RustCrypto#1403]: RustCrypto#1403 [RustCrypto#1425]: RustCrypto#1425 [RustCrypto#1447]: RustCrypto#1447 [RustCrypto#1497]: RustCrypto#1497 [RustCrypto#1499]: RustCrypto#1499 [RustCrypto#1505]: RustCrypto#1505 [RustCrypto#1508]: RustCrypto#1508 [RustCrypto#1509]: RustCrypto#1509 [RustCrypto#1510]: RustCrypto#1510 [RustCrypto#1514]: RustCrypto#1514 [RustCrypto#1517]: RustCrypto#1517 [RustCrypto#1528]: RustCrypto#1528 [RustCrypto#1529]: RustCrypto#1529 [RustCrypto#1534]: RustCrypto#1534 [RustCrypto#1581]: RustCrypto#1581 [RustCrypto#1689]: RustCrypto#1689 [RustCrypto#1709]: RustCrypto#1709 [RustCrypto#1759]: RustCrypto#1759 [RustCrypto#1761]: RustCrypto#1761 [RustCrypto#1764]: RustCrypto#1764 [RustCrypto#1794]: RustCrypto#1794 [RustCrypto#1815]: RustCrypto#1815 [RustCrypto#1868]: RustCrypto#1868 [RustCrypto#1869]: RustCrypto#1869 [RustCrypto#1870]: RustCrypto#1870 [RustCrypto#1961]: RustCrypto#1961 [RustCrypto#1965]: RustCrypto#1965 [RustCrypto#1969]: RustCrypto#1969 [RustCrypto#1986]: RustCrypto#1986 [RustCrypto#2109]: RustCrypto#2109 [RustCrypto#2120]: RustCrypto#2120 [RustCrypto#2212]: RustCrypto#2212 [RustCrypto#2234]: RustCrypto#2234 [RustCrypto#2237]: RustCrypto#2237 [RustCrypto#2273]: RustCrypto#2273 [RustCrypto#2277]: RustCrypto#2277 [RustCrypto#2326]: RustCrypto#2326
Added - Serial number generator ([RustCrypto#1270]) - `DecodeValue` for `x509_cert::time::Time` ([RustCrypto#1986]) - `FromStr` for `x509_cert::time::Time` ([RustCrypto#1961]) - impl `Hash` for `Name` ([RustCrypto#1764]) - impl `Ord` for `CrlReason` ([RustCrypto#1869]) - `DirectoryString::BmpString` ([RustCrypto#1794]) - `Crl` builder ([RustCrypto#1759]) - `Time::now` method ([RustCrypto#1761]) - `Validity::infinity` helper ([RustCrypto#1528]) - `Validity::new` method ([RustCrypto#1529]) - Re-export `spki` types without `*Owned` suffixes ([RustCrypto#1534]) - `x509_cert::builder::AsyncBuilder` using `AsyncSigner` ([RustCrypto#1280]) Changed - Decompose `AsExtension` into `Criticality + AsExtension` ([RustCrypto#2109]) - Improve extension API flexibility and ergonomics ([RustCrypto#2120]) - Expose `Profile` in the `CrlBuilder` ([RustCrypto#1870]) - Ensure a serial number can be stored in a database ([RustCrypto#1868]) - Move the CSR builder `x509_cert::request` ([RustCrypto#1581]) - Rename `x509_cert::builder::Profile` to `BuilderProfile` ([RustCrypto#1514] && [RustCrypto#1517]) - `Name` is now a new type over `RdnSequence` ([RustCrypto#1499]) - make `RelativeDistinguishedName` fields private ([RustCrypto#1510]) - make `RdnSequence` fields private ([RustCrypto#1508]) - make (Tbs)`CertificateInner` fields private ([RustCrypto#1505]) - rename helpers to `get_extension`/`filter_extensions` ([RustCrypto#1497]) - `check_name_encoding` now allow extraneous components ([RustCrypto#1447]) - Accept RFC-invalid certificates as TrustAnchors ([RustCrypto#1403]) - Edition changed to 2024 and MSRV bumped to 1.85 ([RustCrypto#1689]) - Bump `rand` to `v0.10` ([RustCrypto#2212]) - Bump `der` to `v0.8` ([RustCrypto#2234]) - Bump `digest` to `v0.11` ([RustCrypto#2237]) - Bump `sha2` to `v0.11` ([RustCrypto#2273]) - Bump `spki` to `v0.8` ([RustCrypto#2277]) - Bump `signature` to `v3` ([RustCrypto#2326]) Fixed - Converting from `SystemTime` should use `UtcTime` if date <= 2049 ([RustCrypto#1969]) - Underflow on empty input in `Certificate::load_pem_chain` ([RustCrypto#1965]) - Domain validated should accept CNs ([RustCrypto#1815]) - Serialization of email addresses ([RustCrypto#1425]) Removed - Std requirement for `x509_cert::builder` ([RustCrypto#1709]) - `RelativeDistinguishedName::encode_from_string` ([RustCrypto#1509]) [RustCrypto#1270]: RustCrypto#1270 [RustCrypto#1280]: RustCrypto#1280 [RustCrypto#1403]: RustCrypto#1403 [RustCrypto#1425]: RustCrypto#1425 [RustCrypto#1447]: RustCrypto#1447 [RustCrypto#1497]: RustCrypto#1497 [RustCrypto#1499]: RustCrypto#1499 [RustCrypto#1505]: RustCrypto#1505 [RustCrypto#1508]: RustCrypto#1508 [RustCrypto#1509]: RustCrypto#1509 [RustCrypto#1510]: RustCrypto#1510 [RustCrypto#1514]: RustCrypto#1514 [RustCrypto#1517]: RustCrypto#1517 [RustCrypto#1528]: RustCrypto#1528 [RustCrypto#1529]: RustCrypto#1529 [RustCrypto#1534]: RustCrypto#1534 [RustCrypto#1581]: RustCrypto#1581 [RustCrypto#1689]: RustCrypto#1689 [RustCrypto#1709]: RustCrypto#1709 [RustCrypto#1759]: RustCrypto#1759 [RustCrypto#1761]: RustCrypto#1761 [RustCrypto#1764]: RustCrypto#1764 [RustCrypto#1794]: RustCrypto#1794 [RustCrypto#1815]: RustCrypto#1815 [RustCrypto#1868]: RustCrypto#1868 [RustCrypto#1869]: RustCrypto#1869 [RustCrypto#1870]: RustCrypto#1870 [RustCrypto#1961]: RustCrypto#1961 [RustCrypto#1965]: RustCrypto#1965 [RustCrypto#1969]: RustCrypto#1969 [RustCrypto#1986]: RustCrypto#1986 [RustCrypto#2109]: RustCrypto#2109 [RustCrypto#2120]: RustCrypto#2120 [RustCrypto#2212]: RustCrypto#2212 [RustCrypto#2234]: RustCrypto#2234 [RustCrypto#2237]: RustCrypto#2237 [RustCrypto#2273]: RustCrypto#2273 [RustCrypto#2277]: RustCrypto#2277 [RustCrypto#2326]: RustCrypto#2326
## Added - Serial number generator (#1270) - `DecodeValue` for `x509_cert::time::Time` (#1986) - `FromStr` for `x509_cert::time::Time` (#1961) - impl `Hash` for `Name` (#1764) - impl `Ord` for `CrlReason` (#1869) - `DirectoryString::BmpString` (#1794) - `Crl` builder (#1759) - `Time::now` method (#1761) - `Validity::infinity` helper (#1528) - `Validity::new` method (#1529) - Re-export `spki` types without `*Owned` suffixes (#1534) - `x509_cert::builder::AsyncBuilder` using `AsyncSigner` (#1280) ## Changed - Decompose `AsExtension` into `Criticality + AsExtension` (#2109) - Improve extension API flexibility and ergonomics (#2120) - Expose `Profile` in the `CrlBuilder` (#1870) - Ensure a serial number can be stored in a database (#1868) - Move the CSR builder `x509_cert::request` (#1581) - Rename `x509_cert::builder::Profile` to `BuilderProfile` (#1514, #1517) - `Name` is now a new type over `RdnSequence` (#1499) - make `RelativeDistinguishedName` fields private (#1510) - make `RdnSequence` fields private (#1508) - make (Tbs)`CertificateInner` fields private (#1505) - rename helpers to `get_extension`/`filter_extensions` (#1497) - `check_name_encoding` now allow extraneous components (#1447) - Accept RFC-invalid certificates as TrustAnchors (#1403) - Edition changed to 2024 and MSRV bumped to 1.85 (#1689) - Bump `rand` to `v0.10` (#2212) - Bump `der` to `v0.8` (#2234) - Bump `digest` to `v0.11` (#2237) - Bump `sha2` to `v0.11` (#2273) - Bump `spki` to `v0.8` (#2277) - Bump `signature` to `v3` (#2326) ## Fixed - Converting from `SystemTime` should use `UtcTime` if date <= 2049 (#1969) - Underflow on empty input in `Certificate::load_pem_chain` (#1965) - Domain validated should accept CNs (#1815) - Serialization of email addresses (#1425) ## Removed - `std` requirement for `x509_cert::builder` (#1709) - `RelativeDistinguishedName::encode_from_string` (#1509) Co-authored-by: Tony Arcieri <bascule@gmail.com>
This make
FromStrdocumented way to build a name. This also exposes a set of getter methods to get elements from the name (CN, Org, ...).see:
Name#1489Name#1493