aes-ts
v0.0.0-alpha.0
Published
0 dependency, pure TypesScript implementation of the AES block cipher and common modes of operation.
Maintainers
Readme
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.
