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