AES-TS
a modern port of AES-JS
:
A pure JavaScript implementation of the AES block cipher algorithm and all common modes of operation (CBC, CFB, CTR, ECB and OFB).
for proper documentation please check their README.md
.
motivation
- enable three shaking
- it's rare that an app will use all this modes
- not every app needs encryption + decryption
- only half of the constants are needed on each direction
- a good replacement for libraries that import
crypto-browserify
on the browser. - built-in typescript types
best practices
- don't roll your own crypto, especially don't touch
Block
directly. - don't use
ECB
. don't reuseIV
s. - don't use this library, use
SubtleCrypto
, whenever possible.
exports
ESM exports, listed by Common Mode Of Operation.
* |
Encryptor |
Decryptor |
---|---|---|
Block |
Encryptor |
Decryptor |
CBC |
CBCEncryptor |
CBCDecryptor |
CFB |
CFBEncryptor |
CFBDecryptor |
CTR |
CTREncryptor |
CTRDecryptor |
ECB |
ECBEncryptor |
ECBDecryptor |
OFB |
OFBEncryptor |
OFBDecryptor |
interfaces
replace
___
for the mode of operation.each mode has unique parameters, described by their types.
Encryptor
const encryptor = keyconst ciphertext = encryptor
Decryptor
const decryptor = keyconst plaintext = decryptor
Encryptor + Decryptor
const mode = keyconst sametext = mode
license and acknowledgments
all crypto code and tests were taken directly from AES-JS
, written by @ricmoo
.