Skip to content

Commit

Permalink
docs: update CHANGELOG for 0.13.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cpu committed Mar 25, 2024
1 parent 7d895c9 commit 86658f9
Showing 1 changed file with 94 additions and 0 deletions.
94 changes: 94 additions & 0 deletions rcgen/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,100 @@

# Changes

## Release 0.13.0 - March XX, 2024

Added:

- Support has been added for specifying custom "other" OIDs in extended key
usage. Contributed by [Tudyx](https://github.com/tudyx).

- Support has been added for Subject Alternative Name (SAN) names of type
`OtherName`. Contributed by [Tudyx](https://github.com/tudyx).

- Support has been added for building rcgen _without_ cryptography by omitting
the new (default-enabled) `crypto` feature flag. Contributed by
[corrideat](https://github.com/corrideat).

- RSA key generation support has been added. This support requires using the
`aws-lc-rs` feature. By default using `KeyPair::generate` with
an RSA `SignatureAlgorithm` will generate an RSA 2048 keypair. See
`KeyPair::generate_rsa_for` for support for RSA 2048, 3072 and 4096 key sizes.

- Support for ECDSA P521 signatures and key generation has been added when using
the `aws-lc-rs` feature. Contributed by [Alvenix](https://github.com/alvenix).

- Support for using `aws-lc-rs` in `fips` mode can now be activated by using the
`fips` feature in combination with the `aws-lc-rs` feature. Contributed by
[BiagioFesta](https://github.com/biagiofesta).

- Support for loading private keys that may be PKCS8, PKCS1, or SEC1 has been
added when using the `aws-lc-rs` feature. See
`KeyPair::from_pem_and_sign_algo` and `KeyPair::from_der_and_sign_algo` for
more information. Contributed by [Alvenix](https://github.com/alvenix).

- A small command-line tool for certificate generation (`rustls-cert-gen`) was
added. Contributed by [tbro](https://github.com/tbro).

Breaking changes:

- Throughout the API DER inputs are now represented using types from the Rustls
`pki-types` crate, e.g. `PrivateKeyDer`, `CertificateDer`,
`CertificateSigningRequestDer`. Contributed by
[Tudyx](https://github.com/tudyx).

- String types used in `SanType` and `DnValue` enums for non-UTF8 string types
have been replaced with more specific types that prevent representation of
illegal values. E.g. `Ia5String`, `BmpString`, `PrintableString`,
`TeletexString`, and `UniversalString`. Contributed by
[Tudyx](https://github.com/tudyx).

- `KeyPair` generation has been separted from certificate issuance. The
`Certificate::get_key_pair`, `Certificate::serialize_private_key_der` and
`Certificate::serialize_private_key_pem` fns have been removed. The
`Certificate` and `CertificateParams` types now only holds public data.
Issuance APIs now expect to be given both a `Certificate` and a signing
`KeyPair`, and the caller must generate their own `KeyPair` up-front using
`KeyPair::generate`, `KeyPair::generate_for`, or `KeyPair::generate_rsa_for`.

- `KeyPair::from_pem_and_sign_algo` has been renamed to
`KeyPair::from_pkcs8_pem_and_sign_algo` to emphasize the input DER should be
in PKCS8 format.

- The issuance API has been restructured to better match user expectation and to
avoid regenerating data when encoding to both DER and PEM.

Previously one created a `Certificate` with `Certificate::from_params`, and
serialized the `Certificate` with `Certificate::serialize_der`,
`Certificate::serialize_der_with_signer`, `Certificate::serialize_pem` and
`Certificate::serialize_pem_with_signer`. These functions have been removed.

With the updated API you create a `Certificate` directly from
`CertificateParams` using `CertificateParams::self_signed` or
`CertificateParams::signed_by`. You can serialize the `Certificate` to PEM or
DER using `Certificate::der()` or `Certificate::pem`.

- Certificate signing request creation and issuance has been reworked for
consistency with the updated API.

Previously a CSR could be created from a `Certificate` using
`Certificate::serialize_request_der` or `Certificate::serialize_request_pem`.
This is now done using `CertificateParams::serialize_request`. PEM/DER
serialization of the `CertificateSigningRequest` can be done with
`CertificateSigningRequest::der` or `CertificateSigningRequest::pem`.

Previously issuance of a certificate from a CSR could be done using
`CertificateSigningRequest::serialize_der_with_signer` or
`CertificateSigningRequest::serialize_pem_with_signer`. This is now done using
`CertificateSigningRequestParams::signed_by`, and serialization to DER/PEM can
be done by calling `Certificate::pem` or `Certificate::der` on the resulting
`Certificate`.

- Method names starting with `get_` have been renamed to match Rust convention:
`CertificateRevocationList::get_params` -> `params`
`Certificate::get_params` -> `params`
`Certificate::get_key_identifier` -> `Certificate::key_identifier`
`Certificate::get_times` -> `Certificate::times`

## Release 0.12.1 - January 25th, 2024

- RFC 5280 specifies that a serial number must not be larger than 20 octets in
Expand Down

0 comments on commit 86658f9

Please sign in to comment.