Skip to content

Instantly share code, notes, and snippets.

@ralucas
Forked from jo/js-crypto-libraries.md
Last active July 17, 2017 23:56
Show Gist options
  • Select an option

  • Save ralucas/e3d2426c27b39281c57c to your computer and use it in GitHub Desktop.

Select an option

Save ralucas/e3d2426c27b39281c57c to your computer and use it in GitHub Desktop.

Revisions

  1. @jo jo revised this gist Aug 17, 2015. 1 changed file with 0 additions and 10 deletions.
    10 changes: 0 additions & 10 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -2,16 +2,6 @@ JavaScript Crypto Libraries
    ===========================
    I start with a list and plan to create a comparison table.

    _Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)_

    #### Security recommendations

    > It should be noted that js crypto apps deployed via regular web hosting (a.k.a. host-based security) provide users with less security than installable apps with auditable static versions. Installable apps can be deployed as a Firefox or Chrome packaged app. These apps are basically signed zip files and their runtimes typically enforce a strict Content Security Policy (CSP) to protect users against XSS. This blogpost explains the trust model of the web quite well.
    > It is also recommended to set a strong passphrase that protects the user's private key on disk.
    from [OpenPGP.js README](https://github.com/openpgpjs/openpgpjs)


    ### WebCryptoAPI
    http://www.w3.org/TR/WebCryptoAPI/
  2. Johannes Jörg Schmidt revised this gist Feb 7, 2014. 1 changed file with 9 additions and 2 deletions.
    11 changes: 9 additions & 2 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,16 @@
    JavaScript Crypto Libraries
    ===========================
    I start with a list and plan to create a comparison table.

    _Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)_

    I start with a list and plan to create a comparison table.
    #### Security recommendations

    > It should be noted that js crypto apps deployed via regular web hosting (a.k.a. host-based security) provide users with less security than installable apps with auditable static versions. Installable apps can be deployed as a Firefox or Chrome packaged app. These apps are basically signed zip files and their runtimes typically enforce a strict Content Security Policy (CSP) to protect users against XSS. This blogpost explains the trust model of the web quite well.
    > It is also recommended to set a strong passphrase that protects the user's private key on disk.
    from [OpenPGP.js README](https://github.com/openpgpjs/openpgpjs)


    ### WebCryptoAPI
    @@ -41,7 +48,7 @@ https://github.com/travist/jsencrypt

    Provides a simple wrapper around the fantastic work done by Tom Wu for RSA Encryption for JavaScript.

    ## openpgpjs
    ## OpenPGP.js
    https://github.com/openpgpjs/openpgpjs

    OpenPGP implementation for JavaScript
  3. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -117,3 +117,11 @@ A WebCrypto Polyfill
    https://github.com/polycrypt/foxycrypt

    A Firefox extension for the Web Cryptography API


    ## cryptojs
    http://cryptojs.altervista.org/

    JavaScript Cryptography

    * Last modified: - 09/05/2012
  4. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,7 @@ This specification describes a JavaScript API for performing basic cryptographic

    * W3C Working Draft 25 June 2013


    ## sjcl
    http://bitwiseshiftleft.github.io/sjcl/

    @@ -107,3 +108,12 @@ Cifre is a fast crypto toolkit for modern client-side JavaScript. This is done b
    * 2013-07-30 14:09:58


    ## PolyCrypt
    http://polycrypt.net/

    A WebCrypto Polyfill

    ## FoxyCrypt
    https://github.com/polycrypt/foxycrypt

    A Firefox extension for the Web Cryptography API
  5. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 10 additions and 1 deletion.
    11 changes: 10 additions & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -6,6 +6,13 @@ _Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.co
    I start with a list and plan to create a comparison table.


    ### WebCryptoAPI
    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

    ## sjcl
    http://bitwiseshiftleft.github.io/sjcl/

    @@ -97,4 +104,6 @@ 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
    * 2013-07-30 14:09:58


  6. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    JavaScript Crypto Libraries
    ===========================

    _ Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/) _
    _Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)_

    I start with a list and plan to create a comparison table.

  7. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    JavaScript Crypto Libraries
    ===========================

    -- Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)
    _ Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/) _

    I start with a list and plan to create a comparison table.

  8. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    JavaScript Crypto Libraries
    ===========================

    | Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)
    -- Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)

    I start with a list and plan to create a comparison table.

  9. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    JavaScript Crypto Libraries
    ===========================

    " Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)
    | Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)

    I start with a list and plan to create a comparison table.

  10. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,8 @@
    JavaScript Crypto Libraries
    ===========================

    " Disclaimer: [Javascript Cryptography Considered Harmful](http://www.matasano.com/articles/javascript-cryptography/)

    I start with a list and plan to create a comparison table.


  11. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -94,3 +94,4 @@ 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
  12. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -87,3 +87,10 @@ This library is an object oriented cryptography library that implements several

    * License [GNU Lesser GPL](http://www.gnu.org/licenses/lgpl.html)
    * Feb 25, 2009

    ## Cifre
    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
  13. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 7 additions and 2 deletions.
    9 changes: 7 additions & 2 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -65,10 +65,15 @@ JavaScript implementations of standard and secure cryptographic algorithms
    ## crypto
    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.
    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
    @@ -81,4 +86,4 @@ 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](http://www.gnu.org/licenses/lgpl.html)
    * Feb 25, 2009
    * Feb 25, 2009
  14. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 14 additions and 1 deletion.
    15 changes: 14 additions & 1 deletion js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -65,7 +65,20 @@ JavaScript implementations of standard and secure cryptographic algorithms
    ## crypto
    http://ats.oka.nu/titaniumcore/js/crypto/readme.txt

    an object oriented cryptography toolkit that implements several fundamental cryptographic algorithms
    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.

    * asynchronous RSA key generation
    * based on jsbn

    ## jscrypto
    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](http://www.gnu.org/licenses/lgpl.html)
    * Feb 25, 2009
  15. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -18,6 +18,8 @@ http://www-cs-students.stanford.edu/~tjw/jsbn/

    RSA and ECC in JavaScript

    * Version 1.4 (7/1/2013)

    ## ursa
    https://github.com/Obvious/ursa

  16. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -65,4 +65,5 @@ http://ats.oka.nu/titaniumcore/js/crypto/readme.txt

    an object oriented cryptography toolkit that implements several fundamental cryptographic algorithms

    * asynchronous RSA key generation
    * based on jsbn
  17. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -59,3 +59,10 @@ A native implementation of TLS in Javascript and tools to write crypto-based and
    http://code.google.com/p/crypto-js/

    JavaScript implementations of standard and secure cryptographic algorithms

    ## crypto
    http://ats.oka.nu/titaniumcore/js/crypto/readme.txt

    an object oriented cryptography toolkit that implements several fundamental cryptographic algorithms

    * based on jsbn
  18. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -53,6 +53,8 @@ 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

    ## CryptoJS
    http://code.google.com/p/crypto-js/

  19. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,7 @@
    JavaScript Crypto Libraries
    ===========================
    I start with a list and plan to create a comparison table.


    ## sjcl
    http://bitwiseshiftleft.github.io/sjcl/
  20. Johannes Jörg Schmidt revised this gist Jan 25, 2014. 1 changed file with 54 additions and 33 deletions.
    87 changes: 54 additions & 33 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -1,36 +1,57 @@
    JavaScript Crypto Libraries
    ===========================

    * sjcl
    Stanford Javascript Crypto Library
    http://bitwiseshiftleft.github.io/sjcl/
    * js-nacl
    Emscripten-compiled Javascript version of NaCl, the Networking and Cryptography library.
    https://github.com/tonyg/js-nacl
    * jsbn
    RSA and ECC in JavaScript
    http://www-cs-students.stanford.edu/~tjw/jsbn/
    * ursa
    RSA public/private key crypto for Node.
    https://github.com/Obvious/ursa
    * jsencrypt
    Provides a simple wrapper around the fantastic work done by Tom Wu for RSA Encryption for JavaScript.
    https://github.com/travist/jsencrypt
    * openpgpjs
    OpenPGP implementation for JavaScript
    https://github.com/openpgpjs/openpgpjs
    * jwcrypto
    JavaScript implementation of JSON Web Signatures, JSON Web Tokens, and JSON Web Certificates
    https://github.com/mozilla/jwcrypto
    * cryptico
    An easy-to-use encryption system utilizing RSA and AES for javascript.
    https://github.com/wwwtyro/cryptico
    * pidCrypt
    a JavaScript crypto library
    https://www.pidder.de/pidcrypt/?start
    * forge
    A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
    https://github.com/digitalbazaar/forge
    * CryptoJS
    JavaScript implementations of standard and secure cryptographic algorithms
    http://code.google.com/p/crypto-js/
    ## sjcl
    http://bitwiseshiftleft.github.io/sjcl/

    Stanford Javascript Crypto Library

    ## js-nacl
    https://github.com/tonyg/js-nacl

    Emscripten-compiled Javascript version of NaCl, the Networking and Cryptography library.

    ## jsbn
    http://www-cs-students.stanford.edu/~tjw/jsbn/

    RSA and ECC in JavaScript

    ## ursa
    https://github.com/Obvious/ursa

    RSA public/private key crypto for Node.

    ## jsencrypt
    https://github.com/travist/jsencrypt

    Provides a simple wrapper around the fantastic work done by Tom Wu for RSA Encryption for JavaScript.

    ## openpgpjs
    https://github.com/openpgpjs/openpgpjs

    OpenPGP implementation for JavaScript

    ## jwcrypto
    https://github.com/mozilla/jwcrypto

    JavaScript implementation of JSON Web Signatures, JSON Web Tokens, and JSON Web Certificates

    ## cryptico
    https://github.com/wwwtyro/cryptico

    An easy-to-use encryption system utilizing RSA and AES for javascript.

    ## pidCrypt
    https://www.pidder.de/pidcrypt/?start

    a JavaScript crypto library

    ## forge
    https://github.com/digitalbazaar/forge

    A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps

    ## CryptoJS
    http://code.google.com/p/crypto-js/

    JavaScript implementations of standard and secure cryptographic algorithms
  21. Johannes Jörg Schmidt created this gist Jan 25, 2014.
    36 changes: 36 additions & 0 deletions js-crypto-libraries.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    JavaScript Crypto Libraries
    ===========================

    * sjcl
    Stanford Javascript Crypto Library
    http://bitwiseshiftleft.github.io/sjcl/
    * js-nacl
    Emscripten-compiled Javascript version of NaCl, the Networking and Cryptography library.
    https://github.com/tonyg/js-nacl
    * jsbn
    RSA and ECC in JavaScript
    http://www-cs-students.stanford.edu/~tjw/jsbn/
    * ursa
    RSA public/private key crypto for Node.
    https://github.com/Obvious/ursa
    * jsencrypt
    Provides a simple wrapper around the fantastic work done by Tom Wu for RSA Encryption for JavaScript.
    https://github.com/travist/jsencrypt
    * openpgpjs
    OpenPGP implementation for JavaScript
    https://github.com/openpgpjs/openpgpjs
    * jwcrypto
    JavaScript implementation of JSON Web Signatures, JSON Web Tokens, and JSON Web Certificates
    https://github.com/mozilla/jwcrypto
    * cryptico
    An easy-to-use encryption system utilizing RSA and AES for javascript.
    https://github.com/wwwtyro/cryptico
    * pidCrypt
    a JavaScript crypto library
    https://www.pidder.de/pidcrypt/?start
    * forge
    A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
    https://github.com/digitalbazaar/forge
    * CryptoJS
    JavaScript implementations of standard and secure cryptographic algorithms
    http://code.google.com/p/crypto-js/