Releases: margelo/react-native-quick-crypto
Releases · margelo/react-native-quick-crypto
Release 1.1.1
1.1.1 (2026-04-28)
✨ Features - Security Audit Findings and Fixes
- security: Phase 0 audit fixes — actively exploitable findings (#982) (7d9b0a9)
- security: Phase 1 audit foundation — shared helpers (validateUInt, secureZero, EVP_CIPHER_CTX RAII, typed getUIntOption) (#983) (78a4f9e)
- security: Phase 2 audit memory-safety sweep (#984) (e1b306a)
- security: Phase 3 audit — TS-boundary validation + WebCrypto hardening (#985) (6870c90)
- security: Phase 4 audit — test coverage + 11 impl fixes (#986) (3e06d95)
- security: Phase 5 — cross-cutting security audit (CI hardening + tarball trim + audit gate) (#992) (e720ae2)
✨ Features
Release 1.1.0
1.1.0 (2026-04-26)
⚠ BREAKING CHANGES
String/Buffer conversion now matches Node.js Buffer semantics (#976)
stringToBuffer (and the conversion paths that use it) no longer validates hex input or masks high-bit ASCII characters. Behavior now mirrors Node.js's Buffer.from(str, encoding):
| Input | v1.0.19 | v1.1.0 |
|---|---|---|
stringToBuffer('abc', 'hex') |
throws | [0xAB] (trailing nibble dropped) |
stringToBuffer('zzzz', 'hex') |
throws | [] (invalid chars truncate) |
stringToBuffer('über', 'ascii') |
[0x7C, 0x62, 0x65, 0x72] (masked to 7-bit) |
[0xFC, 0x62, 0x65, 0x72] (full byte preserved) |
Migration:
- If you relied on hex decoding throwing for odd-length or invalid input, validate the string yourself before calling (e.g.
/^[0-9a-fA-F]+$/.test(s) && s.length % 2 === 0). - If you relied on ASCII encoding stripping the high bit, switch to an explicit mask or use a different encoding (
'utf8'for text,'latin1'for the previous full-byte-pass-through behavior).
✨ Features
🐛 Bug Fixes
Release 1.0.19
Release 1.0.18
Release 1.0.17
Release 1.0.16
Release 1.0.15
Release 1.0.14
Release 1.0.13
Release 1.0.12
1.0.12 (2026-02-17)
✨ Features
- add KMAC128/KMAC256 support to subtle API (#944) (3e06617)
- add ML-KEM/ML-DSA raw-public and raw-seed export/import (#943) (ad5a961)
- add SHA-3 and cSHAKE support to subtle.digest() (#942) (34e61cd)
- implement ML-KEM encapsulate/decapsulate (#941) (e040d63)
- implement X509Certificate class with all 25 methods/properties (#940) (674a146)
🐛 Bug Fixes
- accept any OpenSSL curve name in EC generateKeyPair, add ECDSA stress tests (#930) (70a9650)
- add JS-side validation for pbkdf2 iterations/keylen (#939) (c959f30)
- copy symmetric key on export to prevent JSI ArrayBuffer GC corruption (#933) (8e4c9e7)
- ecDeriveBits returns full backing ArrayBuffer instead of truncat… (#947) (7c1d6ba)
- improve pbkdf2 type safety to match Node.js API (#932) (b585471)
- prevent cipher reuse after final() and reset is_finalized in all init() overrides (#948) (2f1bdb2)
- resolve circular dependencies causing KeyEncoding undefined (#928) (039e1e0)
- support legacy RSA-* hash name aliases (#929) (e4b63a7)
- use StringDecoder for cipher string encoding remainder buffering (#949) (4ef8b1f)