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.
- 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-browserifyon the browser. - built-in typescript types
- don't roll your own crypto, especially don't touch
Blockdirectly. - don't use
ECB. don't reuseIVs. - don't use this library, use
SubtleCrypto, whenever possible.
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 |
replace
___for the mode of operation.each mode has unique parameters, described by their types.
const encryptor = new ___Encryptor(key)
const ciphertext = encryptor.encrypt(plaintext)const decryptor = new ___Decryptor(key)
const plaintext = decryptor.decrypt(ciphertext)const mode = new ___(key)
const sametext = mode.decrypt(mode.encrypt(plaintext))all crypto code and tests were taken directly from AES-JS, written by @ricmoo.