Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

aes-ts

leonardodino3.2kMIT0.0.0-alpha.0TypeScript support: included

0 dependency, pure TypesScript implementation of the AES block cipher and common modes of operation.

typescript, crypto, aes, aes-ctr, aes-ofb, aes-ecb, aes-cbc, aes-cfb, encrypt, decrypt, block, cipher

readme

AES-TS

test status npm version zero dependencies MIT License

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 reuse IVs.
  • 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

MIT

all crypto code and tests were taken directly from AES-JS, written by @ricmoo.