Skip to content

update#5

Open
elwerene wants to merge 73 commits intogweisert:implement_crl_revokefrom
elwerene:master
Open

update#5
elwerene wants to merge 73 commits intogweisert:implement_crl_revokefrom
elwerene:master

Conversation

@elwerene
Copy link

@elwerene elwerene commented Feb 3, 2026

No description provided.

alex and others added 30 commits October 28, 2025 17:17
pin home to an older version on MSRV CI
Implement set_rsa_oaep_label for AWS-LC/BoringSSL
The OCSP find_status function was unsound because it treated next_update
as always present, even though it's optional per RFC 6960. When absent,
the null pointer from FFI was passed to from_ptr which doesn't check for
null, causing undefined behavior.

Fixed by using from_const_ptr_opt to safely handle the null case. Added
next_update() method returning Option<&Asn1GeneralizedTimeRef> and
deprecated the existing field which now contains a sentinel max time
value (99991231235959Z) for backwards compatibility.

Fixes rust-openssl#2516
…tatus-011CUqcGFNKeKJitnywzYCna

Fix unsound OCSP find_status handling of optional next_update field
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Release openssl v0.10.75 and openssl-sys v0.9.111
…nssl-sys

feat: New methods EVP_PKEY_new_raw_*_key_ex and EVP_PKEY_is_a
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…hub_actions/actions/checkout-6

Bump actions/checkout from 5 to 6
Bump aws-lc-sys from 0.27 to 0.34
Remove the version restriction (#[cfg(any(ossl110, libressl))]) from
X509_NAME_dup in openssl-sys and the corresponding X509NameRef::to_owned()
method in openssl. This function has been available since early versions
of OpenSSL, so there's no need to restrict it to 1.1.0+.

Also removes the version restriction from the test_name_to_owned test.
…e-dup-0154FWsTS14aTYCmYpqJiiap

Expose X509_NAME_dup on all versions of OpenSSL
This reintroduces support for GENERAL_NAME values of type GEN_DIRNAME without relying on OpenSSL’s configuration mini-language.
The deprecated dir_name(&str) constructor remains unchanged and continues to panic.

A new method, dir_name2(X509Name), is added to construct directoryName SAN entries using an owned X509Name.
Internally, this uses safe duplication (.to_owned()) and manually builds a GENERAL_NAME with GEN_DIRNAME, following the same pattern used for other_name2.

This avoids the vulnerability described in RUSTSEC-2023-0023 while restoring needed functionality for consumers that rely on DirectoryName SANs (e.g., government CSR specifications).
New tests verify correctness, pointer ownership, and OpenSSL/BoringSSL/AWS-LC union handling.
reintroduce dir_name support for subject_alt_names
OpenSSL does in fact _not_ return pointers to static structs; depending
on the state of the library you can get different pointers.

This fixes the internal implementation of `Cipher::is_ccm` and
`Cipher::is_ocb` by doing the comparison with NID instead pointers,
which is a stable identifier of the algorithm, regardless of the state
of the OpenSSL library.
alex and others added 30 commits December 21, 2025 11:09
Currently, doing this:

    println!("{:?}", Nid::SECP521R1);

outputs:

    Nid(716)

Which is not as helpful as it could be.

This commit switches Nid over to a manual implementation of Debug which
prints the Nid's integer value, and, additionally, the Nid's short name
if it has one.  This changes the output of the command above to:

    Nid { nid: 716, short_name: "secp521r1" }

And the output of this:

    println!("{:?}", Nid::from_raw(123456789));

becomes:

    Nid { nid: 123456789 }
This allows deriving Debug on user-defined structs that contain
instances of EcGroup.

For standard groups, the debug output will look something like this:

    EcGroup { curve_name: "secp521r1" }

For groups not based on a standard curve, the Debug impl will try to
extract and print the curve's components, such that:

    let mut p = BigNum::new().unwrap();
    let mut a = BigNum::new().unwrap();
    let mut b = BigNum::new().unwrap();
    let mut ctx = BigNumContext::new().unwrap();

    EcGroup::from_curve_name(Nid::SECP224R1)
        .unwrap()
        .components_gfp(&mut p, &mut a, &mut b, &mut ctx)
        .unwrap();

    // reconstruct the group from its components
    let group = EcGroup::from_components(p, a, b, &mut ctx).unwrap();

    println!("{:#?}", group);

will print:

    EcGroup {
        p: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",
        a: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",
        b: "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",
    }

If EcGroup::components_gfp() fails, or if any other error occurs, we'll
instead print only:

    EcGroup

Calling EcGroup::components_gfp() on a curve over GF(2^m) unexpectedly
works, and there does not seem to be an explicit way to distinguish
custom curves over GF(2^m) from custom curves over GF(p), and so, custom
curves over GF(2^m) will be Debug'd by the same logic.  (rust-openssl
does not allow constructing custom curves over GF(2^m), so we can't add
test cases for this.)
In version.rs there's no reason for aws-lc and boringssl to use the
old SSLeay aliases. The parts of the diff touching openssl-sys are
not compiled for aws-lc and boringssl.
Also enable the minimal test for BoringSSL and AWS-LC.
Migrates systest to the ctest 0.5 API: type_name split into
rename_type/rename_struct_ty, skip callbacks now take typed objects
instead of &str, generate replaced by generate_files, and other
renames. Also skips X509_L_ADD_DIR which ctest 0.5 now discovers
inside a function body.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
wasip2 1.0.2 (released Jan 15, 2026) bumped its wit-bindgen
dependency to ^0.51.0 which uses edition 2024. This breaks
cargo on Rust 1.70 which can't parse edition 2024 manifests.
Pin to 1.0.1 which uses wit-bindgen ^0.46.0 (edition 2021).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.