About

This project implements AES in both CBC and CTR modes. It only implements the modes, and uses aes-js for the underlying AES cipher. When encrypting, the 16-byte initialization vector is chosen randomly ( from window.crypto.getRandomValues()) and prepended to the ciphertext. When decrypting, the first 16 bytes are assumed to be the initialization vector.

In CBC mode, padding is performed according to RFC 1423.

CBC Mode



CTR Mode