cyber-security-resources/crypto/crypto_frameworks.md
2023-03-15 20:08:16 -04:00

22 KiB

Crypto Frameworks and Libraries

C Programming Language

  • crypto-algorithms - Basic implementations of standard cryptography algorithms, like AES and SHA-1.
  • libgcrypt - Cryptographic library developed as a separated module of GnuPG.
  • 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.
  • monocypher - small, portable, easy to use crypto library inspired by libsodium and TweetNaCl.
  • NaCl - High-speed library for network communication, encryption, decryption, signatures, etc.
  • OpenSSL - TLS/SSL and crypto library.
  • 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.
  • RHash - Great utility for computing hash sums.
  • 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.
  • 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.

C++

  • Botan - Cryptography library written in C++11.
  • 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.

C-sharp

Clojure

  • buddy-core - Cryptographic Api.
  • clj-crypto - Wrapper for Bouncy Castle.
  • 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.

Common Lisp

  • crypto-shortcuts - Collection of common cryptography functions.
  • ironclad - Collection of common crypto shortcuts.
  • trivial-ssh - SSH client library for Common Lisp (Built on libssh2).

Delphi

  • DelphiEncryptionCompendium - Cryptographic library for 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.
  • 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.
  • comeonin - Password authorization (bcrypt) library for Elixir.
  • 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

  • crypto - Official Website Resources.
  • cryptoballot - Cryptographically secure online voting.
  • dedis/crypto - Advanced crypto library for the Go language.
  • 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).

Haskell

Haxe

JavaScript

  • asmCrypto - JavaScript implementation of popular cryptographic utilities with performance in mind.
  • bcrypt-Node.js - Native implementation of bcrypt for Node.js.
  • cifre - Fast crypto toolkit for modern client-side JavaScript.
  • 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.
  • IronNode - Transform encryption library, a variant of proxy re-encryption, for encrypting to users or groups, and easily adding strong data controls to Node.js apps.
  • IronWeb - Transform encryption library, a variant of proxy re-encryption, for easily managing end-to-end encryption securely in the browser.
  • 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.
  • 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).
  • 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 Node.js and browser. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3, Pairing-Based Cryptography and New Hope.
  • noble - high-security, easily auditable set of contained cryptographic libraries and tools. Zero dependencies each.
  • node.bcrypt.js - bcrypt for Node.js.
  • 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.
  • URSA - RSA public/private key OpenSSL bindings for Node.

Java

  • Apache Shiro - Performs authentication, authorization, cryptography and session management.
  • 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.
  • 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 algorithm.
  • Keycloak - Open Source Identity and Access Management For Modern Applications and Services.
  • keywhiz - A system for distributing and managing secrets.
  • 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.

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/ encryption library providing MD5, SHA1, SHA2 hashing and HMAC functionality, as well as AES encryption/decryption.
  • 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

  • CocoaSecurity - AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex.
  • 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).
  • ObjectivePGP - ObjectivePGP is an implementation of OpenPGP protocol for iOS and macOS. OpenPGP is the most widely used email encryption standard.
  • RNCryptor - CCCryptor (AES encryption) wrappers for iOS and Mac.

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.
  • 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).
  • TCrypto - TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library.

Python

  • 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.
  • cryptography - Python library which exposes cryptographic recipes and primitives.
  • cryptopy - Pure python implmentation of cryptographic algorithms and applications.
  • django-cryptography - Easily encrypt data in Django.
  • hashids - Implementation of hashids in Python.
  • paramiko - Python implementation of the SSHv2 protocol, providing both client and server functionality.
  • 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).

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.
  • RbNaCl - Ruby binding to the Networking and Cryptography (NaCl) library.
  • 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

  • dalek cryptography - Fast yet safe mid-level API for ECC, Bulletproofs, and more.
  • mundane - is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant.
  • 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.
  • sodiumoxide - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).
  • suruga - TLS 1.2 implementation in Rust.
  • webpki - Web PKI TLS X.509 certificate validation in Rust.

Scala

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

Swift

  • CryptoSwift - Crypto related functions and helpers for Swift implemented in Swift programming language.
  • IDZSwiftCommonCrypto - Wrapper for Apple's CommonCrypto library written in Swift.
  • OpenSSL - Swift OpenSSL for macOS and Linux.
  • 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.
  • SwiftSSL - Elegant crypto toolkit in Swift.
  • 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).