0.0.0-alpha.0 • Published 5 years ago
aes-ts v0.0.0-alpha.0
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-browserifyon the browser. - built-in typescript types
best practices
- 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.
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 = new ___Encryptor(key)
const ciphertext = encryptor.encrypt(plaintext)Decryptor
const decryptor = new ___Decryptor(key)
const plaintext = decryptor.decrypt(ciphertext)Encryptor + Decryptor
const mode = new ___(key)
const sametext = mode.decrypt(mode.encrypt(plaintext))license and acknowledgments
all crypto code and tests were taken directly from AES-JS, written by @ricmoo.
0.0.0-alpha.0
5 years ago