Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Oct 3, 2019

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

tarcieri and others added 23 commits January 20, 2025 18:17
I fixed a typo in the CHANGELOG.md file, correcting the misspelling of
"Ouput" to "Output".
This should hopefully cut down on the number of typo-fixing PRs we
receive by automatically checking for them in CI:

https://github.com/crate-ci/typos
Uses a regex to detect strings that appear to be sequences of
Base64-encoded characters, and re-enables the lint for the JWK
implementation in `elliptic-curve`
This size was intended for AEADs based on padded block cipher modes such
as CBC in order to express the underlying cipher's block size and
therefore the maximum amount of possible padding overhead beyond the
original plaintext, which is a full block (in the case a sentinel block
is added to a block-aligned plaintext input).

However, every AEAD we implement uses counter mode, i.e. a stream cipher
instead of a block cipher, which has no overhead, and as such
`CiphertextOverhead` is set to `U0` in every AEAD implementation we
currently maintain.

Furthermore, to my knowledge there are no standard AEADs which use CBC
or other padded block cipher modes of operation. The original goal was
to support an expired draft specification of a CBC+HMAC AEAD.

Since it doesn't appear to be of use, this PR removes it.
The trait design generally follows the `BlockCipherEnc/Dec` traits. We
currently do not have tweakable block cipher implementations which use
the backend capability, but I think it's still worth to include it for
API consistency and to future-proof the traits. Some of the helper
methods (e.g. `encrypt_blocks`) are not translated since it's unclear
how to organize passing of tweaks. Arguably, such methods should not be
used with tweakable block ciphers either way.

As a bridge between tweakable and non-tweakable traits the `ZeroTweak`
wrapper is introduced. It allows users to use tweakable block cipher
implementations with the parts of the ecosystem which expects
non-tweakble block ciphers while still being explicit in the code (e.g.
`ZeroTweak<Threefish256>`).
We currently have no implementations which require these traits, or
plans to implement any.

If we do wind up needing these, they can be easily added back.
`kem` and `elliptic-curve` can not be migrated because of upstream
dependencies which still use `rand_core` v0.6 and expose it in their
public API.

`getrandom` crate features are renamed to `os_rng` following the similar
change in `rand_core`.
Fixes #1677

This merge types defined in `async-signature` back into `signature` and
effectively deprecates `async-signature`
This is so that a `RandomizedDigestSigner` can call into
`hazmat::RandomizedPrehashSigner` directly with the provided rng.

Example use: RustCrypto/signatures#901
As discussed [here][0] the tests are not particularity useful
and block migration to rand_core v0.9.

[0]: #1642 (comment)
`#[must_use]` annotations have no effect on trait methods.
dependabot bot and others added 30 commits September 22, 2025 18:15
Implementation is originally from the `k256` crate, but written to be
generic over a `Point` type which is bound by the `Group` trait.

Adds a `LookupTable` type which supports precomputed lookup tables for a
given curve point which can be selected from in constant time.

Also adds a feature-gated `BasepointTable` type with a `const fn`
constructor which builds a table for precomputed fixed-base scalar
multiplication using the `Group::generator` as the base point.

The `const fn` support for `BasepointTable` is achieved via a
`LazyLock`-style pattern which computes the table lazily upon first use
in a synchronized fashion. It supports using either
`std::sync::LazyLock`, or for `no_std` targets it also supports using
the `critical-section` feature of the `once_cell` crate.
Mostly to get the `hybrid-array` update, which should clear the security
audit warning
This notably enables the `subtle` feature of `hybrid-array`. This
apparently broke `digest` where previously the unsized coercion was
working until an explicit impl was available. So this PR also includes a
small fix to `digest`.
The feature is stable since Rust 1.62.
The method is fallible anyway, so errors should be propagated rather
than panicking
Republishing with a bumped minor version to address #2053, since the
current release of `ml-kem` (v0.2.x) depends on `v0.3.0-pre.0`.
This is auto-populated to point at docs.rs
Encourages the use of these traits for initializing decapsulators that
impl the `Decapsulate` type.

(This is effectively #2056 without the supertrait bound)
Access to typenum constants is needed to impl `KeySizeUser`
Otherwise there's no way to generically access one from the other
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants