unstale

npm / @noble/ciphers

@noble/ciphers

What changed in @noble/ciphers 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

4 breaking5 security3 performance2 behavior and defaults4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@noble/ciphers 218 changes

Breaking changes 4

  • Using after after clean now throws.

    2.4.0release notes

  • Output buffers that partially overlap unread input are now rejected.

    2.4.0release notes

  • minLen now enforces the NIST SP 800-38G minimum of 2, alongside the radix**minlen >= 100 requirement.

    2.3.0release notes

  • A new cipher parameter enables AAD support in webcrypto wrappers; passing AAD to a cipher that does not support it now throws instead of being silently ignored.

    2.3.0release notes

Security 5

  • Corrects AES CTR handling of partial-block tails on big-endian CPUs.

    2.3.0release notes

  • Padding failures now use a generic aes: bad decrypt message, reducing padding-oracle signal.

    2.3.0release notes

  • Corrects polyval tag normalization on big-endian CPUs.

    2.3.0release notes

  • The ctr from the webcrypto submodule uses the correct counter wrapping.

    2.2.0release notes

  • Zeroization is improved.

    2.2.0release notes

Performance 3

Behavior and default changes 2

Fixes and other changes 4

  • The package is made Big Endian friendly; all tests pass on s390x.

    2.2.0release notes

  • MAC no longer corrupts oversized outputs.

    2.2.0release notes

  • Compilation issues on TypeScript v6 are fixed.

    2.2.0release notes

  • Byte Array types are fixed to work with TypeScript 5.6 and TypeScript 5.9+, addressing incompatibilities and errors such as TS2345.

    2.2.0release notes