List some crypto libraries for JavaScript out there. Might be a bit out dated. Scroll to the bottom.
http://www.w3.org/TR/WebCryptoAPI/
This specification describes a JavaScript API for performing basic cryptographic operations in web applications, such as hashing, signature generation and verification, and encryption and decryption. Additionally, it describes an API for applications to generate and/or manage the keying material necessary to perform these operations. Uses for this API range from user or service authentication, document or code signing, and the confidentiality and integrity of communications.
- W3C Working Draft 25 June 2013
http://bitwiseshiftleft.github.io/sjcl/
Stanford Javascript Crypto Library
https://github.com/tonyg/js-nacl
Emscripten-compiled Javascript version of NaCl, the Networking and Cryptography library.
http://www-cs-students.stanford.edu/~tjw/jsbn/
RSA and ECC in JavaScript
- Version 1.4 (7/1/2013)
https://github.com/Obvious/ursa
RSA public/private key crypto for Node.
https://github.com/travist/jsencrypt
Provides a simple wrapper around the fantastic work done by Tom Wu for RSA Encryption for JavaScript.
https://github.com/openpgpjs/openpgpjs
OpenPGP implementation for JavaScript
https://github.com/mozilla/jwcrypto
JavaScript implementation of JSON Web Signatures, JSON Web Tokens, and JSON Web Certificates
https://github.com/wwwtyro/cryptico
An easy-to-use encryption system utilizing RSA and AES for javascript.
https://www.pidder.de/pidcrypt/?start
a JavaScript crypto library
https://github.com/digitalbazaar/forge
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
- based on jsbn
http://code.google.com/p/crypto-js/
JavaScript implementations of standard and secure cryptographic algorithms
http://ats.oka.nu/titaniumcore/js/crypto/readme.txt
JavaScript Cryptography Toolkit
This library is an object oriented cryptography toolkit that implements several fundamental cryptographic algorithms including TWOFISH, SERPENT, RIJNDAEL, RSA with key-generation and SHA(SHA-1,224,256,384,512) for JavaScript. This library works in ActionScript as well. The unique feature of this library is asynchronous processing. A heavyweight process such as 4096bit RSA key generation will be done asynchronously so that this library does not cause problems such as freezing browsers, "slow-downing" warning dialogs, etc.
- asynchronous RSA key generation
- based on jsbn
http://code.google.com/p/jscryptolib/
A JavaScript Cryptography Library
This library is an object oriented cryptography library that implements several fundamental cryptographic algorithms including AES, SHA-1, HMAC, BASE64, RSA, ECC and IBE for JavaScript. This library works in ActionScript as well.
- License GNU Lesser GPL
- Feb 25, 2009
https://github.com/openpeer/cifre
Cifre is a fast crypto toolkit for modern client-side JavaScript. This is done by taking the best crypto code for js on the net and updating it to use modern technologies. There are plans to collaborate with the forge project.
- MIT License
- 2013-07-30 14:09:58
A WebCrypto Polyfill
https://github.com/polycrypt/foxycrypt
A Firefox extension for the Web Cryptography API
http://cryptojs.altervista.org/
JavaScript Cryptography
- Last modified: 09/05/2012
Port of TweetNaCl / NaCl to JavaScript for modern browsers and Node.js. Public domain.
- Last modified: 01/02/2022
- Recommended by the author of this gist
https://github.com/jo/webcryptobox
Tiny utility library for asymetric encryption via WebCrypto with zero dependencies. Made by the author of this gist.
- Last modified: - 02/17/2021
- Apache 2.0 License
Can anyone point me to actual security analysis on any of these crypto libraries? HOW SECURE are they? Which ones have been cracked? How secure are these libraries to things like cache timing attacks? Which are considered the best, and why? How do they compare to the new W3C WebCrypto API? I think any libraries that haven't passed strong security testing should be relisted on this page under a DO NOT USE list.
I'm actually trying to move away from SJCL because the maintainer has abandoned the project and it doesn't play well with CommonJS require statements under some architectures. I looked for security analysis of SJCL and I couldn't find any, other than an offhand mention of a known vulnerability to cache timing attacks. Why do people trust crypto-js? Because the authors at Google would never do evil? They don't even host the code anymore, and the docs are minimal to say the least.