An open API service indexing awesome lists of open source software.

awesome-cryptography

A curated list of cryptography resources and links.
https://github.com/sobolevn/awesome-cryptography

Last synced: 12 days ago
JSON representation

  • Frameworks and Libs

    • C

      • 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.
      • libkcapi - Linux Kernel Crypto API User Space Interface Library.
      • 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.
      • nettle - is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.
      • 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.
      • XKCP - source implementations of the cryptographic schemes defined by the Keccak team.
      • 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++20`.
      • Nettle - Low-level cryptographic library.
      • =nil; Crypto3 - Modern Cryptography Suite in C++17 (complete applied cryptography suite starting with block ciphers and ending with threshold cryptography, zk proof systems, etc).
      • 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.
      • secrets.clj - A Clojure library designed to generate cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.
      • 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.
    • 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.
    • 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.
      • crypto - Functions for computation of message digests, and functions for encryption and decryption.
      • public_key - Provides functions to handle public-key infrastructure.
    • Go

      • dkeyczar - Port of Google's Keyczar cryptography library to Go.
      • gocrypto - Example source code for the Practical Crypto with Go book.
      • kyber - Advanced crypto library for the Go language.
      • 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).
    • Haskell

    • Haxe

    • 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 Tink - A small crypto library that provides a safe, simple, agile and fast way to accomplish some common crypto tasks.
      • jbcrypt - jBCrypt is an implementation the OpenBSD Blowfish password hashing
      • Keycloak - Open Source Identity and Access Management For Modern Applications and Services.
      • pac4j - Security engine.
      • Password4j - A Java user-friendly cryptographic library for hashing and checking passwords with different Key derivation functions (KDFs) and Cryptographic hash functions (CHFs).
      • 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.
      • 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

      • bcrypt-Node.js - Native implementation of bcrypt for Node.js.
      • closure-library - Google's common JavaScript library.
      • 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 Node.js.
      • 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.
      • micro-rsa-dsa-dh - Minimal implementation of older cryptography algorithms: RSA, DSA, DH, ElGamal.
      • milagro-crypto-js - MCJS is a standards compliant JavaScript cryptographic library with no external dependencies except for the random seed source. Compatible for Node.js and browser. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3, Pairing-Based Cryptography and New Hope.
      • noble-ciphers - SIV, Salsa20, ChaCha, Poly1305 and FF1
      • noble-curves - to-curve, poseidon hash, schnorr, secp256k1, ed25519, ed448, p521, bn254, bls12-381 and others. Also 4kb [noble-secp256k1](https://github.com/paulmillr/noble-secp256k1), [noble-ed25519](https://github.com/paulmillr/noble-ed25519)
      • noble-hashes
      • noble-post-quantum - KEM, ML-DSA, SLH-DSA (CRYSTALS-Kyber, CRYSTALS-Dilithium, Sphincs+) and hybrids
      • 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.
      • TweetNaCl.js - A port of TweetNaCl / NaCl for JavaScript for modern browsers and Node.js.
      • 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.
      • 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).
      • node.bcrypt.js - bcrypt for Node.js.
    • 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/
      • 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).
    • OCaml

      • Digestif - is a toolbox that implements various cryptographic primitives in C and OCaml.
      • ocaml-tls - TLS in pure OCaml.
    • 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 implementation 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.
      • django-cryptography - Easily encrypt data in Django.
      • ecdsa - An easy-to-use implementation of ECC with support for ECDSA and ECDH.
      • 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

      • AEADs - Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers.
      • BLAKE3 - is official Rust and C implementations of the BLAKE3 cryptographic hash function.
      • botan-rs - Botan bindings for Rust.
      • cryptoballot - Cryptographically secure online voting.
      • dryoc - A pure-Rust, general purpose crypto library that implements libsodium primitives.
      • elliptic-curves - Collection of pure Rust elliptic curve implementations: NIST P-224, P-256, P-384, P-521, secp256k1, SM2.
      • formats - Cryptography-related format encoders/decoders: DER, PEM, PKCS, PKIX.
      • hashes - Collection of cryptographic hash functions written in pure Rust.
      • mundane - is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant.
      • octavo - Highly modular & configurable hash & crypto library.
      • orion - is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe code.
      • password-hashes - Collection of password hashing algorithms, otherwise known as password-based key derivation functions, written in pure Rust.
      • proteus - Axolotl protocol implementation, without header keys, in Rust.
      • rage - is a simple, modern, and secure file encryption tool, using the age format.
      • 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.
      • ronkathon - Educational, mathematically transparent, well documentated cryptography in rust.
      • 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.
      • signatures - Cryptographic signature algorithms: DSA, ECDSA, Ed25519.
      • snow - Pure Rust implementation of Trevor Perrin’s [Noise Protocol](https://noiseprotocol.org/noise.html).
      • 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.
      • ockam - is a Rust library for end-to-end encryption and mutual authentication.
      • sodiumoxide - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).
    • Scala

      • recrypt - Transform encryption library for Scala.
      • scrypto - Cryptographic primitives for Scala.
      • tsec - A type-safe, functional, general purpose security and cryptography library.
    • Scheme

      • crypto-tools - Useful cryptographic primitives for Chicken Scheme.
      • guile-gnutls - GnuTLS bindings for GNU Guile.
      • chicken-sodium - Bindings to libsodium crypto library for Chicken Scheme.
      • guile-ssh - libssh bindings for GNU Guile.
      • industria - Motley assortment of cryptographic primitives, OpenSSH, DNS.
      • guile-gnutls - GnuTLS bindings for GNU Guile.
    • 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 macOS.
      • 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 macOS 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.