crypto ====== Libraries of cryptographic functions implemented in JavaScript. aes.js ------ This is a reference implementation of the algorithm described in the FIPS-197 standard. It implements the standard very closely, in order to aid in understanding the standard and the algorithm itself. This comprises: - `cipher`: takes a 128-bit input block and applies the cipher algorithm to produce a 128-bit output block - `keyExpansion`: applies a key expansion to a 128-/192-/256-bit cipher key to produce a 2D byte-array key schedule for the cipher routine More details are available at www.movable-type.co.uk/scripts/aes.html. aes-ctr.js ---------- This is a counter-mode (CTR) wrapper for the AES function. This comprises: - `encrypt`: encrypt a plaintext using a supplied password - `decrypt`: decrypt an encrypted ciphertext using a supplied password More details are available at www.movable-type.co.uk/scripts/aes.html. sha1.js ------- This is a reference implementation of the algorithm described in the FIPS-180-2 standard. It implements the standard very closely, in order to aid in understanding the standard and the algorithm itself. This comprises: - `hash`: takes a (Unicode) string and generates a hash (of the UTF-8 encoded string) More details are available at www.movable-type.co.uk/scripts/sha1.html. sha256.js ------- This is a reference implementation of the algorithm described in the FIPS-180-2 standard. It implements the standard very closely, in order to aid in understanding the standard and the algorithm itself. This comprises: - `hash`: takes a (Unicode) string and generates a hash (of the UTF-8 encoded string) More details are available at www.movable-type.co.uk/scripts/sha1.html. tea-block.js ------------ Wheeler & Needham’s *Tiny Encryption Algorithm* is a simple but powerful encryption algorithm which provides strong encryption in just a few lines of concise, clear code. This implements the (corrected) ‘Block TEA’ variant (xxtea). The library includes: - `encrypt` a text with a password - `decrypt` an encrypted text - `encode` an array of longs using a 128-bit key - `decode` an encoded array of longs More details are available at www.movable-type.co.uk/scripts/tea-block.html. Documentation ------------- Documentation for all these methods is available at www.movable-type.co.uk/scripts/js/crypto/docs. Browser support --------------- [![browser support](https://ci.testling.com/chrisveness/crypto.png)](https://ci.testling.com/chrisveness/crypto) IE9- doesn’t have btoa()/atob(): if you need to support IE9-, you can use David Chambers’ [Base64 polyfill](https://github.com/davidchambers/Base64.js).