# What changed in @noble/ciphers

> 18 changes in @noble/ciphers 2 from its official release notes, upgrade guides and advisories: 4 breaking, 5 security. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@noble/ciphers/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @noble/ciphers 2

### Breaking changes

- Using after after clean now throws. (2.4.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.4.0)
- Output buffers that partially overlap unread input are now rejected. (2.4.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.4.0)
- minLen now enforces the NIST SP 800-38G minimum of 2, alongside the radix**minlen >= 100 requirement. (2.3.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)
- 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.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)

### Security

- Corrects AES CTR handling of partial-block tails on big-endian CPUs. (2.3.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)
- Padding failures now use a generic aes: bad decrypt message, reducing padding-oracle signal. (2.3.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)
- Corrects polyval tag normalization on big-endian CPUs. (2.3.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)
- The ctr from the webcrypto submodule uses the correct counter wrapping. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)
- Zeroization is improved. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)

### Performance

- Sizing is improved for very large domains. (2.4.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.4.0)
- AES-SIV is 20% faster. (2.3.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.3.0)
- Tree-shaking is improved to reduce bundle sizes. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)

### Behavior and default changes

- Keys and params are now snapshotted. (2.4.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.4.0)
- The CMAC API is aligned with the other MAC APIs. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)

### Fixes and other changes

- The package is made Big Endian friendly; all tests pass on s390x. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)
- MAC no longer corrupts oversized outputs. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)
- Compilation issues on TypeScript v6 are fixed. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)
- Byte Array types are fixed to work with TypeScript 5.6 and TypeScript 5.9+, addressing incompatibilities and errors such as TS2345. (2.2.0) — [release notes](https://github.com/paulmillr/noble-ciphers/releases/tag/2.2.0)
