awesome-cryptography
A curated list of cryptography resources and links.
https://github.com/eric-erki/awesome-cryptography
Last synced: 4 days ago
JSON representation
-
Contributing
-
Web-sites
-
-
Frameworks and Libs
-
C
- monocypher - small, portable, easy to use crypto library inspired by libsodium and TweetNaCl.
- NaCl - High-speed library for network communication, encryption, decryption, signatures, etc.
- themis - High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption). Ported on many languages and platforms, suitable for client-server infastructures.
- crypto-algorithms - Basic implementations of standard cryptography algorithms, like AES and SHA-1.
- libsodium - Modern and easy-to-use crypto library.
- libtomcrypt - Fairly comprehensive, modular and portable cryptographic toolkit.
- libVES.c - End-to-end encrypted sharing via cloud repository, secure recovery through a viral network of friends in case of key loss.
- milagro-crypto-c - Small, self-contained and fast open source crypto library. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3 and Pairing-Based Cryptography.
- OpenSSL - TLS/SSL and crypto library.
- RHash - Great utility for computing hash sums.
- tiny-AES128-C - Small portable AES128 in C.
- wolfSSL - Small, fast, portable implementation of TLS/SSL for embedded devices to the cloud.
- xxHash - Extremely fast hash algorithm.
- libgcrypt - Cryptographic library developed as a separated module of GnuPG.
- PolarSSL - PolarSSL makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
- monocypher - small, portable, easy to use crypto library inspired by libsodium and TweetNaCl.
-
C++
- Botan - Cryptography library written in `C++11`.
- Nettle - Low-level cryptographic library.
- cryptopp - Crypto++ Library is a free C++ class library of cryptographic schemes.
- HElib - Software library that implements homomorphic encryption (HE).
- Nettle - Low-level cryptographic library.
- s2n - Implementation of the TLS/SSL protocols.
-
Clojure
- buddy-core - Cryptographic Api.
- pandect - Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure.
- clj-crypto - Wrapper for Bouncy Castle.
-
Common Lisp
- ironclad - Collection of common crypto shortcuts.
- crypto-shortcuts - Collection of common cryptography functions.
- ironclad - Collection of common crypto shortcuts.
- trivial-ssh - SSH client library for Common Lisp (Built on libssh2).
-
C-sharp
- Bouncy Castle - All-purpose cryptographic library.
- PCLCrypto - Provides cryptographic APIs over algorithms implemented by the platform, including exposing them to portable libraries.
- SecurityDriven.Inferno - .NET crypto done right.
- StreamCryptor - Stream encryption & decryption with libsodium and protobuf.
- Bouncy Castle - All-purpose cryptographic library.
- Microsoft .NET Framework Cryptography Model - The .NET Framework implementations of many standard cryptographic algorithms.
-
Delphi
- LockBox - LockBox 3 is a Delphi library for cryptography.
- SynCrypto - Fast cryptographic routines (hashing and cypher), implementing AES, XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for speed.
- DelphiEncryptionCompendium - Cryptographic library for Delphi.
- TForge - TForge is open-source crypto library written in Delphi, compatible with FPC.
-
Elixir
- cipher - Elixir crypto library to encrypt/decrypt arbitrary binaries.
- cloak - Cloak makes it easy to use encryption with Ecto.
- elixir-rsa - `:public_key` cryptography wrapper for Elixir.
- elixir_tea - TEA implementation in Elixir.
- ex_crypto - Elixir wrapper for Erlang `:crypto` and `:public_key` modules. Provides sensible defaults for many crypto functions to make them easier to use.
- exgpg - Use gpg from Elixir.
- pot - Erlang library for generating one time passwords compatible with Google Authenticator.
- siphash-elixir - Elixir implementation of the SipHash hash family.
-
Erlang
- crypto - Functions for computation of message digests, and functions for encryption and decryption.
- public_key - Provides functions to handle public-key infrastructure.
-
Go
- cryptoballot - Cryptographically secure online voting.
- dkeyczar - Port of Google's Keyczar cryptography library to Go.
- gocrypto - Example source code for the Practical Crypto with Go book.
- goThemis - Go wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
- crypto - Official Website Resources.
- dedis/crypto - Advanced crypto library for the Go language.
-
Haskell
- Cryptography - Collaborative Hackage list.
- Cryptography & Hashing - Official Website of Haskell.
- Cryptonite - Haskell repository of cryptographic primitives.
- Cryptography - Collaborative Hackage list.
- cryptol - The Language of Cryptography.
- HsOpenSSL - OpenSSL binding for Haskel.
- scrypt - Haskell bindings to Colin Percival's scrypt implementation.
- HsOpenSSL - OpenSSL binding for Haskel.
-
Haxe
- haxe-crypto - Haxe Cryptography Library.
-
Java
- Bouncy Castle - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations.
- Flexiprovider - Powerful toolkit for the Java Cryptography Architecture.
- jbcrypt - jBCrypt is an implementation the OpenBSD Blowfish password hashing
- Bouncy Castle - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations.
- GDH - Generalized Diffie-Hellman key exchange Java library for multiple parties built on top of the Vert.x framework.
- Google Keyczar - Easy to use, yet safe encryption framework with key versioning.
- Google Tink - A small crypto library that provides a safe, simple, agile and fast way to accomplish some common crypto tasks.
- Java Themis - Java/Android wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
- jbcrypt - jBCrypt is an implementation the OpenBSD Blowfish password hashing
- Keycloak - Open Source Identity and Access Management For Modern Applications and Services.
- keywhiz - A system for distributing and managing secrets.
- pac4j - Security engine.
- Project Kalium - Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium.
- scrypt - Pure Java implementation of the scrypt key derivation function and a JNI interface to the C implementations, including the SSE2 optimized version.
- securitybuilder - Fluent Builder API for JCA/JSSE objects.
- Project Kalium - Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium.
- Java Themis - Java/Android wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
-
JavaScript
- closure-library - Google's common JavaScript library.
- cifre - Fast crypto toolkit for modern client-side JavaScript.
- cryptico - Easy-to-use encryption system utilizing RSA and AES for javascript.
- crypto-js - JavaScript library of crypto standards.
- cryptojs - Provide standard and secure cryptographic algorithms for NodeJS.
- forge - Native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps.
- javascript-crypto-library - JavaScript Crypto Library provides web developers with an extensive and efficient set of cryptographic functions.
- js-nacl - Pure-Javascript High-level API to Emscripten-compiled libsodium routines.
- jsencrypt - Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
- JShashes - Fast and dependency-free cryptographic hashing library for node.js and browsers (supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC).
- jsrsasign - The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation.
- libsodium.js - libsodium compiled to pure JavaScript, with convenient wrappers.
- libVES.js - End-to-end encrypted sharing via cloud repository, secure recovery through a viral network of friends in case of key loss.
- milagro-crypto-js - MCJS is a standards compliant JavaScript cryptographic library with no external dependencies except for the random seed source. Compatible for nodejs and browser. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3, Pairing-Based Cryptography and New Hope.
- OpenPGP.js - OpenPGP implementation for JavaScript.
- PolyCrypt - Pure JS implementation of the WebCrypto API.
- rusha - High-performance pure-javascript SHA1 implementation suitable for large binary data, reaching up to half the native speed.
- sjcl - Stanford Javascript Crypto Library.
- asmCrypto - JavaScript implementation of popular cryptographic utilities with performance in mind.
- cifre - Fast crypto toolkit for modern client-side JavaScript.
- URSA - RSA public/private key OpenSSL bindings for Node.
- node.bcrypt.js - bcrypt for NodeJS.
- bcrypt-nodejs - Native implementation of bcrypt for NodeJS.
- IronNode - Transform encryption library, a variant of proxy re-encryption, for encrypting to users or groups, and easily adding strong data controls to NodeJS apps.
- IronWeb - Transform encryption library, a variant of proxy re-encryption, for easily managing end-to-end encryption securely in the browser.
- jsThemis - Javascript wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
-
Julia
- Crypto.jl - Library that wraps OpenSSL, but also has pure Julia implementations for reference.
- MbedTLS.jl - Wrapper around the mbed TLS and cryptography C libary.
- Nettle.jl - Julia wrapper around nettle cryptographic hashing/
- MbedTLS.jl - Wrapper around the mbed TLS and cryptography C libary.
- Nettle.jl - Julia wrapper around nettle cryptographic hashing/
- SHA.jl - Performant, 100% native-julia SHA1, SHA2-{224,256,384,512} implementation.
-
Lua
- lua-lockbox - Collection of cryptographic primitives written in pure Lua.
- LuaCrypto - Lua bindings to OpenSSL.
-
Objective-C
- RNCryptor - CCCryptor (AES encryption) wrappers for iOS and Mac.
- CocoaSecurity - AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex.
- ObjectivePGP - ObjectivePGP is an implementation of OpenPGP protocol for iOS and macOS. OpenPGP is the most widely used email encryption standard.
- ObjC Themis - ObjC wrapper on Themis for iOS and MacOS. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
-
PHP
- halite - Simple library for encryption using `libsodium`.
- libsodium-laravel - Laravel Package Abstraction using `libsodium`.
- PHP Encryption - Library for encrypting data with a key or password in PHP.
- TCrypto - TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library.
- PHP Themis - PHP wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
-
Python
- cryptography - Python library which exposes cryptographic recipes and primitives.
- cryptopy - Pure python implmentation of cryptographic algorithms and applications.
- bcrypt - Modern password hashing for your software and your servers.
- charm - Framework for rapidly prototyping cryptosystems.
- Crypto-Vinaigrette - Quantum resistant asymmetric key generation tool for digital signatures.
- hashids - Implementation of [hashids](http://hashids.org) in Python.
- Privy - An easy, fast lib to correctly password-protect your data.
- pycryptodome - Self-contained Python package of low-level cryptographic primitives.
- PyElliptic - Python OpenSSL wrapper. For modern cryptography with ECC, AES, HMAC, Blowfish.
- pynacl - Python binding to the Networking and Cryptography (NaCl) library.
- pythemis - Python wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
- paramiko - Python implementation of the SSHv2 protocol, providing both client and server functionality.
-
R
- rscrypt - Package for a collection of scrypt cryptographic functions.
-
Ruby
- bcrypt-ruby - Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.
- Ruby Themis - Ruby wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
-
Rust
- octavo - Highly modular & configurable hash & crypto library.
- proteus - Axolotl protocol implementation, without header keys, in Rust.
- recrypt - A pure-Rust library that implements cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption.
- ring - Safe, fast, small crypto using Rust & BoringSSL's cryptography primitives.
- rust-crypto - Mostly pure-Rust implementation of various cryptographic algorithms.
- rust-openssl - OpenSSL bindings for Rust.
- rustls - Rustls is a new, modern TLS library written in Rust.
- suruga - TLS 1.2 implementation in Rust.
- webpki - Web PKI TLS X.509 certificate validation in Rust.
- dalek cryptography - Fast yet safe mid-level API for ECC, Bulletproofs, and more.
- sodiumoxide - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).
-
Scala
-
Swift
- CryptoSwift - Crypto related functions and helpers for Swift implemented in Swift programming language.
- IDZSwiftCommonCrypto - Wrapper for Apple's [CommonCrypto](https://opensource.apple.com/source/CommonCrypto/) library written in Swift.
- SweetHMAC - Tiny and easy to use Swift class to encrypt strings using HMAC algorithms.
- Swift-Sodium - Swift interface to the Sodium library for common crypto operations for iOS and OS X.
- SwiftThemis - Swift wrapper on Themis for iOS and MacOS. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
- OpenSSL - Swift OpenSSL for OS X and Linux.
- SwiftSSL - Elegant crypto toolkit in Swift.
-
-
Resources
-
Blogs
- Charles Engelke's Blog - WebCrypto Blog Posts.
- Root Labs rdist - Nate Lawson and his co-authors write on a variety of topics including hardware implementation, cryptographic timing attacks, DRM, and the Commodore 64.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Schneier on security - One of the oldest and most famous security blogs. Bruce covers topics from block cipher cryptanalysis to airport security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- Bristol Cryptography Blog - Official blog for the University of Bristol cryptography research group. It's a group blog, primarily targeted towards cryptographers and crypto students.
- Salty Hash - Covers topics on encryption, data control, privacy, and security.
- A Few Thoughts on Cryptographic Engineering - Some random thoughts about crypto.
-
Mailing lists
- Modern Crypto - Forums for discussing modern cryptographic practice.
- randombit.net - List for general discussion of cryptography, particularly the technical aspects.
- metzdowd.com - "Cryptography" is a low-noise moderated mailing list devoted to cryptographic technology and its political impact.
-
Web-sites
- IACR - The International Association for Cryptologic Research is a non-profit scientific organization whose purpose is to further research in cryptology and related fields.
- Subreddit of Cryptography - This subreddit is intended for links and discussions surrounding the theory and practice of strong cryptography.
- 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.
- Learn Cryptography - Dedicated to helping people understand how and why the cryptographic systems they use everyday without realizing work to secure and protect their privacy.
- Cryptography Stackexchange - Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography.
- Garykessler Crypto - An Overview of Cryptography.
-
Sub Categories
Blogs
28
JavaScript
26
Books
17
Java
17
C
16
Python
12
Standalone
11
Rust
11
Web-sites
10
Courses
9
Haskell
8
Web-tools
8
Elixir
8
Algorithms
8
Swift
7
C++
6
Go
6
Julia
6
C-sharp
6
PHP
5
Common Lisp
4
Delphi
4
Objective-C
4
Clojure
3
Mailing lists
3
Scala
3
Articles
2
Erlang
2
Other lists
2
Lua
2
Ruby
2
Plugins
2
R
1
Haxe
1
Keywords
cryptography
27
encryption
14
security
10
crypto
10
python
8
hmac
7
aes
6
java
6
libsodium
5
rust
5
javascript
5
sha1
4
certificate
4
swift
4
hash
4
sha3
3
x509
3
c
3
tls
3
post-quantum-cryptography
3
digest
3
rsa
3
cipher
3
shamir-s-secret-sharing-scheme
2
shamir
2
rsa-encryption
2
pgp
2
checksum
2
digital-signature
2
encryption-decryption
2
decryption
2
ecc
2
hash-functions
2
openssl
2
saml
2
ssl
2
message-digest
2
nacl
2
ecdh
2
c-sharp
2
elixir
2
proxy-re-encryption
2
awesome
2
awesome-list
2
jca
2
authentication
2
scala
2
milagro
2
ios
2
objective-c
2