1025 lines
50 KiB
HTML
1025 lines
50 KiB
HTML
<h1 id="awesome-cryptography-awesome">Awesome Cryptography <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p align="center">
|
||
<img src="https://github.com/sobolevn/awesome-cryptography/blob/master/awesome-crypto.png?raw=true" alt="Awesome Cryptography">
|
||
</p>
|
||
<p><a href="https://twitter.com/awe_crypto_bot"><img
|
||
src="https://img.shields.io/twitter/follow/awe_crypto_bot.svg?style=social&maxAge=0"
|
||
alt="Follow us on twitter" /></a></p>
|
||
<p>A curated list of cryptography resources and links.</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<!--lint disable no-missing-blank-lines alphabetize-lists list-item-punctuation-->
|
||
<ul>
|
||
<li><a href="#theory">Theory</a>
|
||
<ul>
|
||
<li><a href="#algorithms">Algorithms</a>
|
||
<ul>
|
||
<li><a href="#symmetric-encryption">Symmetric encryption</a></li>
|
||
<li><a href="#asymmetric-encryption">Asymmetric encryption</a></li>
|
||
<li><a href="#hash-functions">Hash functions</a></li>
|
||
</ul></li>
|
||
<li><a href="#articles">Articles</a></li>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#courses">Courses</a></li>
|
||
<li><a href="#other-lists">Other lists</a></li>
|
||
</ul></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#standalone">Standalone</a></li>
|
||
<li><a href="#plugins">Plugins</a>
|
||
<ul>
|
||
<li><a href="#git">Git</a></li>
|
||
</ul></li>
|
||
<li><a href="#playgrounds">Playgrounds</a></li>
|
||
</ul></li>
|
||
<li><a href="#frameworks-and-libs">Frameworks and Libs</a>
|
||
<ul>
|
||
<li><a href="#c">C</a></li>
|
||
<li><a href="#c-sharp">C#</a></li>
|
||
<li><a href="#c-1">C++</a></li>
|
||
<li><a href="#clojure">Clojure</a></li>
|
||
<li><a href="#common-lisp">Common Lisp</a></li>
|
||
<li><a href="#delphi">Delphi</a></li>
|
||
<li><a href="#elixir">Elixir</a></li>
|
||
<li><a href="#erlang">Erlang</a></li>
|
||
<li><a href="#go">Golang</a></li>
|
||
<li><a href="#haskell">Haskell</a></li>
|
||
<li><a href="#haxe">Haxe</a></li>
|
||
<li><a href="#java">Java</a></li>
|
||
<li><a href="#javascript">JavaScript</a></li>
|
||
<li><a href="#julia">Julia</a></li>
|
||
<li><a href="#lua">Lua</a></li>
|
||
<li><a href="#ocaml">OCaml</a></li>
|
||
<li><a href="#objective-c">Objective-C</a></li>
|
||
<li><a href="#php">PHP</a></li>
|
||
<li><a href="#python">Python</a></li>
|
||
<li><a href="#r">R</a></li>
|
||
<li><a href="#ruby">Ruby</a></li>
|
||
<li><a href="#rust">Rust</a></li>
|
||
<li><a href="#scala">Scala</a></li>
|
||
<li><a href="#scheme">Scheme</a></li>
|
||
<li><a href="#swift">Swift</a></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a>
|
||
<ul>
|
||
<li><a href="#blogs">Blogs</a></li>
|
||
<li><a href="#mailing-lists">Mailing lists</a></li>
|
||
<li><a href="#web-tools">Web-tools</a></li>
|
||
<li><a href="#web-sites">Web-sites</a></li>
|
||
</ul></li>
|
||
<li><a href="#contributing">Contributing</a></li>
|
||
<li><a href="#license">License</a></li>
|
||
</ul>
|
||
<!--lint enable no-missing-blank-lines alphabetize-lists list-item-punctuation-->
|
||
<hr />
|
||
<h2 id="theory">Theory</h2>
|
||
<h3 id="algorithms">Algorithms</h3>
|
||
<h4 id="symmetric-encryption">Symmetric encryption</h4>
|
||
<ul>
|
||
<li><a href="https://en.wikipedia.org/wiki/Triple_DES">3DES</a> -
|
||
Symmetric-key block cipher (or Triple Data Encryption Algorithm (TDEA or
|
||
Triple DEA), which applies the Data Encryption Standard (DES) cipher
|
||
algorithm three times to each data block.</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard">AES</a>
|
||
- Symmetric-key block cipher algorithm and U.S. government standard for
|
||
secure and classified data encryption and decryption (also known as
|
||
Rijndael).</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Blowfish_(cipher)">Blowfish</a> -
|
||
Symmetric-key block cipher, designed in 1993 by Bruce Schneier. Notable
|
||
features of the design include key-dependent S-boxes and a highly
|
||
complex key schedule.</li>
|
||
</ul>
|
||
<h4 id="asymmetric-encryption">Asymmetric encryption</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange">DH</a>
|
||
- A method of exchanging cryptographic keys securely over a public
|
||
channel. Unlike RSA, the Diffie-Hellman Key Exchange is not encryption,
|
||
and is only a way for two parties to agree on a shared secret value.
|
||
Since the keys generated are completely pseudo-random, DH key exchanges
|
||
can provide forward secrecy
|
||
(https://en.wikipedia.org/wiki/Forward_secrecy).</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Elliptic-curve_cryptography">ECC</a>
|
||
- Public-key cryptosystems based on the algebraic structure of elliptic
|
||
curves over finite fields.</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/RSA_(cryptosystem)">RSA</a> -
|
||
One of the first practical public-key cryptosystems and is widely used
|
||
for secure data transmission. In RSA, this asymmetry is based on the
|
||
practical difficulty of factoring the product of two large prime
|
||
numbers, the factoring problem.</li>
|
||
</ul>
|
||
<h4 id="transform-encryption">Transform Encryption</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://docs.ironcorelabs.com/concepts/transform-encryption">Transform
|
||
Encryption (aka Proxy Re-Encryption)</a> - Transform encryption uses
|
||
three mathematically related keys: one to encrypt plaintext to a
|
||
recipient, a second to decrypt the ciphertext, and a third to transform
|
||
ciphertext encrypted to one recipient so it can be decrypted by a
|
||
different recipient.</li>
|
||
</ul>
|
||
<h4 id="hash-functions">Hash functions</h4>
|
||
<ul>
|
||
<li><a href="https://en.wikipedia.org/wiki/MD5">MD5</a> - Widely used
|
||
hash function producing a 128-bit hash value. MD5 was initially designed
|
||
to be used as a cryptographic hash function, but it has been found to
|
||
suffer from extensive vulnerabilities. It can still be used as a
|
||
checksum to verify data integrity, but only against unintentional
|
||
corruption.</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/SHA-1">SHA1</a> -
|
||
Cryptographic hash function designed by the NSA. SHA-1 produces a
|
||
160-bit hash value known as a message digest. SHA-1 is no longer
|
||
considered secure against well-funded opponents.</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/SHA-2">SHA2</a> - Set of hash
|
||
functions designed by the NSA. SHA-256 and SHA-512 are novel hash
|
||
functions computed with 32-bit and 64-bit words, respectively. They use
|
||
different shift amounts and additive constants, but their structures are
|
||
otherwise virtually identical, differing only in the number of
|
||
rounds.</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/SHA-3">SHA3</a> -
|
||
Cryptographic hash function that produces a fixed-size output, typically
|
||
224, 256, 384, or 512 bits, from variable-size input data. It is part of
|
||
the SHA-3 family of cryptographic algorithms designed to resist attacks
|
||
from quantum computers and offers security properties such as pre-image
|
||
resistance, second pre-image resistance, and collision resistance.</li>
|
||
</ul>
|
||
<h3 id="articles">Articles</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://paragonie.com/blog/2016/05/how-generate-secure-random-numbers-in-various-programming-languages">How
|
||
to Generate Secure Random Numbers in Various Programming
|
||
Languages</a>.</li>
|
||
<li><a
|
||
href="https://www.netlogix.at/news/artikel/password-insecurity-part-1/">Password
|
||
Insecurity</a> - This article is written for everybody who is interested
|
||
in password security.</li>
|
||
<li><a
|
||
href="https://paragonie.com/blog/2016/09/untangling-forget-me-knot-secure-account-recovery-made-simple">Secure
|
||
Account Recovery Made Simple</a>.</li>
|
||
</ul>
|
||
<h3 id="books">Books</h3>
|
||
<ul>
|
||
<li><a href="https://crypto.stanford.edu/~dabo/cryptobook/">A Graduate
|
||
Course in Applied Cryptography</a> - The book covers many constructions
|
||
for different tasks in cryptography.</li>
|
||
<li><a href="http://www.math.brown.edu/~jhs/MathCryptoHome.html">An
|
||
Introduction to Mathematical Cryptography</a> - Introduction to modern
|
||
cryptography.</li>
|
||
<li><a
|
||
href="https://www.wiley.com/en-ie/Applied+Cryptography%3A+Protocols%2C+Algorithms+and+Source+Code+in+C%2C+20th+Anniversary+Edition-p-9781119439028">Applied
|
||
Cryptography: Protocols, Algorithms and Source Code in C</a> - This
|
||
cryptography classic provides you with a comprehensive survey of modern
|
||
cryptography.</li>
|
||
<li><a href="https://www.crypto101.io/">Crypto101</a> - Crypto 101 is an
|
||
introductory course on cryptography.</li>
|
||
<li><a
|
||
href="https://www.schneier.com/books/cryptography_engineering/">Cryptography
|
||
Engineering</a> - Learn to build cryptographic protocols that work in
|
||
the real world.</li>
|
||
<li><a href="https://cacr.uwaterloo.ca/hac/">Handbook of Applied
|
||
Cryptography</a> - This book is intended as a reference for professional
|
||
cryptographers.</li>
|
||
<li><a href="http://www.cs.umd.edu/~jkatz/imc.html">Introduction to
|
||
Modern Cryptography</a> - Introductory-level treatment of cryptography
|
||
written from a modern, computer science perspective.</li>
|
||
<li><a
|
||
href="https://www.feistyduck.com/library/openssl-cookbook/">OpenSSL
|
||
Cookbook</a> - The book about OpenSSL.</li>
|
||
<li><a href="https://cryptobook.nakov.com">Practical Cryptography for
|
||
Developers</a> - Developer-friendly book on modern cryptography (hashes,
|
||
MAC codes, symmetric and asymmetric ciphers, key exchange, elliptic
|
||
curves, digital signatures) with lots of code examples.</li>
|
||
<li><a
|
||
href="https://www.manning.com/books/real-world-cryptography/">Real World
|
||
Cryptography</a> - This book teaches you applied cryptographic
|
||
techniques to understand and apply security at every level of your
|
||
systems and applications.</li>
|
||
<li><a href="http://www.cl.cam.ac.uk/~rja14/book.html">Security
|
||
Engineering</a> - There is an extraordinary textbook written by Ross
|
||
Anderson, professor of computer security at University of
|
||
Cambridge.</li>
|
||
<li><a href="https://nostarch.com/seriouscrypto">Serious
|
||
Cryptography</a> - A Practical Introduction to Modern Encryption by
|
||
Jean-Philippe Aumasson.</li>
|
||
<li><a href="https://simonsingh.net/books/the-code-book/">The Code
|
||
Book</a> - This book is a digest of the history of cryptography,
|
||
covering both ancient times, and newer cryptography methods. There are
|
||
exercises at the end and the solution of those was rewarded with
|
||
$10.000.</li>
|
||
<li><a href="https://unglue.it/work/141611/">The Cryptoparty
|
||
Handbook</a> - This book provides a comprehensive guide to the various
|
||
topics of the computer and internet security.</li>
|
||
<li><a href="http://www.crypto-textbook.com/">Understanding
|
||
Cryptography</a> - Often overlooked, this book is a boon for beginners
|
||
to the field. It contains plenty of exercises at the end of each
|
||
chapter, aimed at reinforcing concepts and cementing ideas.</li>
|
||
</ul>
|
||
<h3 id="courses">Courses</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.schneier.com/wp-content/uploads/2016/02/paper-self-study.pdf">A
|
||
Self-Study Course In Block-Cipher Cryptanalysis</a> - This paper
|
||
attempts to organize the existing literature of block-cipher
|
||
cryptanalysis in a way that students can use to learn cryptanalytic
|
||
techniques and ways to break algorithms, by Bruce Schneier.</li>
|
||
<li><a
|
||
href="https://www.udacity.com/course/applied-cryptography--cs387">Applied
|
||
Cryptography</a> - Cryptography is present in everyday life, from paying
|
||
with a credit card to using the telephone. Learn all about making and
|
||
breaking puzzles in computing.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=ySQl0NhW1J0">Crypto Strikes
|
||
Back!</a> - This talk will cover crypto vulnerabilities in
|
||
widely-deployed systems and how the smallest oversight resulted in
|
||
catastrophe.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/learn/cryptography">Cryptography</a> - A
|
||
practical oriented course in Cryptography by University of Maryland
|
||
College Park.</li>
|
||
<li><a
|
||
href="http://online.stanford.edu/course/cryptography">Cryptography -
|
||
Stanford University</a> - This course explains the inner workings of
|
||
cryptographic primitives and how to correctly use them. Students will
|
||
learn how to reason about the security of cryptographic constructions
|
||
and how to apply this knowledge to real-world applications.</li>
|
||
<li><a href="https://www.coursera.org/learn/crypto">Cryptography I</a> -
|
||
The course begins with a detailed discussion of how two parties who have
|
||
a shared secret key can communicate securely when a powerful adversary
|
||
eavesdrops and tampers with traffic. We will examine many deployed
|
||
protocols and analyze mistakes in existing systems.</li>
|
||
<li><a href="https://www.cybrary.it/course/cryptography/">Cybrary
|
||
Cryptography</a> - This online course we will cover how cryptography is
|
||
the cornerstone of security, and how through its use of different
|
||
encryption methods, such as ciphers, and public or private keys, you can
|
||
protect private or sensitive information from unauthorized access.</li>
|
||
<li><a href="https://intensecrypto.org/">Harvard’s Cryptography Lecture
|
||
notes</a> - An introductory but fast-paced undergraduate/beginning
|
||
graduate course on cryptography, Used for Harvard CS 127.</li>
|
||
<li><a
|
||
href="https://www.khanacademy.org/computing/computer-science/cryptography">Journey
|
||
into cryptography</a> - The course of cryptography by Khan Academy.</li>
|
||
<li><a
|
||
href="http://courses.cs.washington.edu/courses/csep590/06wi/">Practical
|
||
Aspects of Modern Cryptography</a> - Practical Aspects of Modern
|
||
Cryptography, Winter 2006 University of Washington CSE.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=ZDnShu5V99s">Theory and
|
||
Practice of Cryptography</a> - Introduction to Modern Cryptography,
|
||
Using Cryptography in Practice and at Google, Proofs of Security and
|
||
Security Definitions and A Special Topic in Cryptography.</li>
|
||
</ul>
|
||
<h3 id="other-lists">Other lists</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/pFarb/awesome-crypto-papers">Awesome
|
||
crypto-papers</a> – A curated list of cryptography papers, articles,
|
||
tutorials and howtos.</li>
|
||
<li><a href="https://github.com/jonaschn/awesome-he">Awesome HE</a> – A
|
||
curated list of homomorphic encryption libraries, software and
|
||
resources.</li>
|
||
</ul>
|
||
<h2 id="tools">Tools</h2>
|
||
<h3 id="standalone">Standalone</h3>
|
||
<ul>
|
||
<li><a href="http://bcrypt.sourceforge.net/">Bcrypt</a> - Cross-platform
|
||
file encryption utility.</li>
|
||
<li><a href="https://github.com/StackExchange/blackbox">blackbox</a> -
|
||
safely store secrets in Git/Mercurial/Subversion.</li>
|
||
<li><a href="https://github.com/certbot/certbot">certbot</a> -
|
||
Previously the Let’s Encrypt Client, is EFF’s tool to obtain certs from
|
||
Let’s Encrypt, and (optionally) auto-enable HTTPS on your server. It can
|
||
also act as a client for any other CA that uses the ACME protocol.</li>
|
||
<li><a href="https://github.com/liesware/coherence/">Coherence</a> -
|
||
Cryptographic server for modern web apps.</li>
|
||
<li><a href="https://github.com/cryptomator/cryptomator">cryptomator</a>
|
||
- Multi-platform transparent client-side encryption of your files in the
|
||
cloud.</li>
|
||
<li><a href="https://databunker.org/">Databunker</a> - API based
|
||
personal data or PII storage service built to comply with GDPR and
|
||
CCPA.</li>
|
||
<li><a href="https://www.gnupg.org/">gpg</a> - Complete and free
|
||
implementation of the OpenPGP standard. It allows to encrypt and sign
|
||
your data and communication, features a versatile key management system.
|
||
GnuPG is a command line tool with features for easy integration with
|
||
other applications.</li>
|
||
<li><a href="https://github.com/IronCoreLabs/ironssh">ironssh</a> -
|
||
End-to-end encrypt transferred files using sftp/scp and selectively
|
||
share with others. Automatic key management works with any SSH server.
|
||
Encrypted files are gpg compatible.</li>
|
||
<li><a href="https://github.com/GouveaHeitor/nipe">Nipe</a> - Nipe is a
|
||
script to make Tor Network your default gateway.</li>
|
||
<li><a href="https://github.com/mozilla/sops">sops</a> - sops is an
|
||
editor of encrypted files that supports YAML, JSON and BINARY formats
|
||
and encrypts with AWS KMS, GCP KMS, Azure Key Vault and PGP.</li>
|
||
<li><a href="https://ves.host/docs/ves-util">ves</a> - End-to-end
|
||
encrypted sharing via cloud repository, secure recovery through a viral
|
||
network of friends in case of key loss.</li>
|
||
</ul>
|
||
<h3 id="plugins">Plugins</h3>
|
||
<h4 id="git">Git</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/AGWA/git-crypt">git-crypt</a> -
|
||
Transparent file encryption in git.</li>
|
||
<li><a href="https://sobolevn.github.io/git-secret/">git-secret</a> -
|
||
Bash-tool to store your private data inside a git repository.</li>
|
||
</ul>
|
||
<h3 id="playgrounds">Playgrounds</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://vishwas1.github.io/crypto/index.html#/crypto">Cryptography
|
||
Playground</a> - A simple web tool to play and learn basic concepts of
|
||
cryptography like, hashing, symmetric, asymmetric, zkp etc.</li>
|
||
</ul>
|
||
<h2 id="frameworks-and-libs">Frameworks and Libs</h2>
|
||
<h3 id="c">C</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/B-Con/crypto-algorithms">crypto-algorithms</a>
|
||
- Basic implementations of standard cryptography algorithms, like AES
|
||
and SHA-1.</li>
|
||
<li><a href="http://directory.fsf.org/wiki/Libgcrypt">libgcrypt</a> -
|
||
Cryptographic library developed as a separated module of GnuPG.</li>
|
||
<li><a href="https://github.com/smuellerDD/libkcapi">libkcapi</a> -
|
||
Linux Kernel Crypto API User Space Interface Library.</li>
|
||
<li><a href="https://github.com/jedisct1/libsodium">libsodium</a> -
|
||
Modern and easy-to-use crypto library.</li>
|
||
<li><a href="https://github.com/libtom/libtomcrypt">libtomcrypt</a> -
|
||
Fairly comprehensive, modular and portable cryptographic toolkit.</li>
|
||
<li><a href="https://github.com/vesvault/libVES.c">libVES.c</a> -
|
||
End-to-end encrypted sharing via cloud repository, secure recovery
|
||
through a viral network of friends in case of key loss.</li>
|
||
<li><a
|
||
href="https://github.com/apache/incubator-milagro-crypto-c">milagro-crypto-c</a>
|
||
- Small, self-contained and fast open source crypto library. It supports
|
||
RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3 and Pairing-Based
|
||
Cryptography.</li>
|
||
<li><a href="https://monocypher.org">monocypher</a> - small, portable,
|
||
easy to use crypto library inspired by libsodium and TweetNaCl.</li>
|
||
<li><a href="https://nacl.cr.yp.to/">NaCl</a> - High-speed library for
|
||
network communication, encryption, decryption, signatures, etc.</li>
|
||
<li><a href="https://github.com/gnutls/nettle">nettle</a> - 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.</li>
|
||
<li><a href="https://github.com/openssl/openssl">OpenSSL</a> - TLS/SSL
|
||
and crypto library.</li>
|
||
<li><a href="https://tls.mbed.org/">PolarSSL</a> - 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.</li>
|
||
<li><a href="https://github.com/rhash/RHash">RHash</a> - Great utility
|
||
for computing hash sums.</li>
|
||
<li><a href="https://github.com/cossacklabs/themis">themis</a> - 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.</li>
|
||
<li><a href="https://github.com/kokke/tiny-AES128-C">tiny-AES128-C</a> -
|
||
Small portable AES128 in C.</li>
|
||
<li><a href="https://github.com/wolfSSL/wolfssl">wolfSSL</a> - Small,
|
||
fast, portable implementation of TLS/SSL for embedded devices to the
|
||
cloud.</li>
|
||
<li><a href="https://github.com/XKCP/XKCP">XKCP</a> — is a repository
|
||
that gathers different free and open-source implementations of the
|
||
cryptographic schemes defined by the Keccak team.</li>
|
||
<li><a href="https://github.com/Cyan4973/xxHash">xxHash</a> - Extremely
|
||
fast hash algorithm.</li>
|
||
</ul>
|
||
<h3 id="c-1">C++</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/NilFoundation/crypto3">=nil; Crypto3</a>
|
||
- Modern Cryptography Suite in C++17 (complete applied cryptography
|
||
suite starting with block ciphers and ending with threshold
|
||
cryptography, zk proof systems, etc).</li>
|
||
<li><a href="https://botan.randombit.net/">Botan</a> - Cryptography
|
||
library written in <code>C++20</code>.</li>
|
||
<li><a href="https://github.com/weidai11/cryptopp">cryptopp</a> -
|
||
Crypto++ Library is a free C++ class library of cryptographic
|
||
schemes.</li>
|
||
<li><a href="https://github.com/shaih/HElib">HElib</a> - Software
|
||
library that implements homomorphic encryption (HE).</li>
|
||
<li><a href="http://www.lysator.liu.se/~nisse/nettle/">Nettle</a> -
|
||
Low-level cryptographic library.</li>
|
||
<li><a href="https://github.com/awslabs/s2n">s2n</a> - Implementation of
|
||
the TLS/SSL protocols.</li>
|
||
</ul>
|
||
<h3 id="c-sharp">C-sharp</h3>
|
||
<ul>
|
||
<li><a href="https://bouncycastle.org/csharp/index.html">Bouncy
|
||
Castle</a> - All-purpose cryptographic library.</li>
|
||
<li><a
|
||
href="https://github.com/adamcaudill/libsodium-net">libsodium-net</a> -
|
||
Secure cryptographic library, port of libsodium for .NET.</li>
|
||
<li><a
|
||
href="https://docs.microsoft.com/en-us/dotnet/standard/security/cryptography-model">Microsoft
|
||
.NET Framework Cryptography Model</a> - The .NET Framework
|
||
implementations of many standard cryptographic algorithms.</li>
|
||
<li><a href="https://github.com/AArnott/PCLCrypto">PCLCrypto</a> -
|
||
Provides cryptographic APIs over algorithms implemented by the platform,
|
||
including exposing them to portable libraries.</li>
|
||
<li><a
|
||
href="https://github.com/sdrapkin/SecurityDriven.Inferno">SecurityDriven.Inferno</a>
|
||
- .NET crypto done right.</li>
|
||
<li><a
|
||
href="https://github.com/bitbeans/StreamCryptor">StreamCryptor</a> -
|
||
Stream encryption & decryption with libsodium and protobuf.</li>
|
||
</ul>
|
||
<h3 id="clojure">Clojure</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://funcool.github.io/buddy-core/latest/">buddy-core</a> -
|
||
Cryptographic Api.</li>
|
||
<li><a href="https://github.com/macourtney/clj-crypto/">clj-crypto</a> -
|
||
Wrapper for Bouncy Castle.</li>
|
||
<li><a href="https://github.com/xsc/pandect">pandect</a> - Fast and
|
||
easy-to-use Message Digest, Checksum and HMAC library for Clojure.</li>
|
||
<li><a href="https://github.com/lk-geimfari/secrets.clj">secrets.clj</a>
|
||
- A Clojure library designed to generate cryptographically strong random
|
||
numbers suitable for managing data such as passwords, account
|
||
authentication, security tokens, and related secrets.</li>
|
||
</ul>
|
||
<h3 id="common-lisp">Common Lisp</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/Shinmera/crypto-shortcuts">crypto-shortcuts</a>
|
||
- Collection of common cryptography functions.</li>
|
||
<li><a href="http://method-combination.net/lisp/ironclad/">ironclad</a>
|
||
- Collection of common crypto shortcuts.</li>
|
||
<li><a href="https://github.com/eudoxia0/trivial-ssh">trivial-ssh</a> -
|
||
SSH client library for Common Lisp (Built on libssh2).</li>
|
||
</ul>
|
||
<h3 id="delphi">Delphi</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/winkelsdorf/DelphiEncryptionCompendium/releases">DelphiEncryptionCompendium</a>
|
||
- Cryptographic library for Delphi.</li>
|
||
<li><a href="https://sourceforge.net/projects/tplockbox/">LockBox</a> -
|
||
LockBox 3 is a Delphi library for cryptography.</li>
|
||
<li><a
|
||
href="https://github.com/synopse/mORMot/blob/master/SynCrypto.pas">SynCrypto</a>
|
||
- Fast cryptographic routines (hashing and cypher), implementing AES,
|
||
XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for
|
||
speed.</li>
|
||
<li><a href="https://bitbucket.org/sergworks/tforge">TForge</a> - TForge
|
||
is open-source crypto library written in Delphi, compatible with
|
||
FPC.</li>
|
||
</ul>
|
||
<h3 id="elixir">Elixir</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rubencaro/cipher">cipher</a> - Elixir
|
||
crypto library to encrypt/decrypt arbitrary binaries.</li>
|
||
<li><a href="https://github.com/danielberkompas/cloak">cloak</a> - Cloak
|
||
makes it easy to use encryption with Ecto.</li>
|
||
<li><a href="https://github.com/elixircnx/comeonin">comeonin</a> -
|
||
Password authorization (bcrypt) library for Elixir.</li>
|
||
<li><a href="https://github.com/trapped/elixir-rsa">elixir-rsa</a> -
|
||
<code>:public_key</code> cryptography wrapper for Elixir.</li>
|
||
<li><a href="https://github.com/keichan34/elixir_tea">elixir_tea</a> -
|
||
TEA implementation in Elixir.</li>
|
||
<li><a href="https://github.com/ntrepid8/ex_crypto">ex_crypto</a> -
|
||
Elixir wrapper for Erlang <code>:crypto</code> and
|
||
<code>:public_key</code> modules. Provides sensible defaults for many
|
||
crypto functions to make them easier to use.</li>
|
||
<li><a href="https://github.com/rozap/exgpg">exgpg</a> - Use gpg from
|
||
Elixir.</li>
|
||
<li><a href="https://github.com/yuce/pot">pot</a> - Erlang library for
|
||
generating one time passwords compatible with Google Authenticator.</li>
|
||
<li><a
|
||
href="https://github.com/zackehh/siphash-elixir">siphash-elixir</a> -
|
||
Elixir implementation of the SipHash hash family.</li>
|
||
</ul>
|
||
<h3 id="erlang">Erlang</h3>
|
||
<ul>
|
||
<li><a href="http://erlang.org/doc/apps/crypto/">crypto</a> - Functions
|
||
for computation of message digests, and functions for encryption and
|
||
decryption.</li>
|
||
<li><a href="http://erlang.org/doc/man/public_key.html">public_key</a> -
|
||
Provides functions to handle public-key infrastructure.</li>
|
||
</ul>
|
||
<h3 id="go">Go</h3>
|
||
<ul>
|
||
<li><a href="https://golang.org/pkg/crypto/">crypto</a> - Official
|
||
Website Resources.</li>
|
||
<li><a href="https://github.com/dgryski/dkeyczar">dkeyczar</a> - Port of
|
||
Google’s Keyczar cryptography library to Go.</li>
|
||
<li><a href="https://github.com/kisom/gocrypto">gocrypto</a> - Example
|
||
source code for the Practical Crypto with Go book.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Go-Howto">goThemis</a>
|
||
- 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).</li>
|
||
<li><a href="https://github.com/dedis/kyber">kyber</a> - Advanced crypto
|
||
library for the Go language.</li>
|
||
</ul>
|
||
<h3 id="haskell">Haskell</h3>
|
||
<ul>
|
||
<li><a
|
||
href="http://hackage.haskell.org/packages/#cat:Cryptography">Cryptography</a>
|
||
- Collaborative Hackage list.</li>
|
||
<li><a
|
||
href="https://wiki.haskell.org/Applications_and_libraries/Cryptography">Cryptography
|
||
& Hashing</a> - Official Website of Haskell.</li>
|
||
<li><a href="https://github.com/GaloisInc/cryptol">cryptol</a> - The
|
||
Language of Cryptography.</li>
|
||
<li><a
|
||
href="https://hackage.haskell.org/package/cryptonite">Cryptonite</a> -
|
||
Haskell repository of cryptographic primitives.</li>
|
||
<li><a href="https://github.com/phonohawk/HsOpenSSL">HsOpenSSL</a> -
|
||
OpenSSL binding for Haskel.</li>
|
||
<li><a href="https://github.com/informatikr/scrypt">scrypt</a> - Haskell
|
||
bindings to Colin Percival’s scrypt implementation.</li>
|
||
</ul>
|
||
<h3 id="haxe">Haxe</h3>
|
||
<ul>
|
||
<li><a href="http://lib.haxe.org/p/haxe-crypto/">haxe-crypto</a> - Haxe
|
||
Cryptography Library.</li>
|
||
</ul>
|
||
<h3 id="javascript">JavaScript</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/vibornoff/asmcrypto.js/">asmCrypto</a> -
|
||
JavaScript implementation of popular cryptographic utilities with
|
||
performance in mind.</li>
|
||
<li><a
|
||
href="https://github.com/shaneGirish/bcrypt-Node.js">bcrypt-Node.js</a>
|
||
- Native implementation of bcrypt for Node.js.</li>
|
||
<li><a href="https://github.com/openpeer/cifre">cifre</a> - Fast crypto
|
||
toolkit for modern client-side JavaScript.</li>
|
||
<li><a
|
||
href="https://github.com/google/closure-library/tree/master/closure/goog/crypt">closure-library</a>
|
||
- Google’s common JavaScript library.</li>
|
||
<li><a href="https://github.com/wwwtyro/cryptico">cryptico</a> -
|
||
Easy-to-use encryption system utilizing RSA and AES for JavaScript.</li>
|
||
<li><a href="https://github.com/brix/crypto-js">crypto-js</a> -
|
||
JavaScript library of crypto standards.</li>
|
||
<li><a href="https://github.com/gwjjeff/cryptojs">cryptojs</a> - Provide
|
||
standard and secure cryptographic algorithms for Node.js.</li>
|
||
<li><a href="https://github.com/digitalbazaar/forge">forge</a> - Native
|
||
implementation of TLS in JavaScript and tools to write crypto-based and
|
||
network-heavy webapps.</li>
|
||
<li><a
|
||
href="https://docs.ironcorelabs.com/ironnode-sdk/overview">IronNode</a>
|
||
- 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.</li>
|
||
<li><a
|
||
href="https://docs.ironcorelabs.com/ironweb-sdk/overview">IronWeb</a> -
|
||
Transform encryption library, a variant of proxy re-encryption, for
|
||
easily managing end-to-end encryption securely in the browser.</li>
|
||
<li><a
|
||
href="https://github.com/clipperz/javascript-crypto-library">javascript-crypto-library</a>
|
||
- JavaScript Crypto Library provides web developers with an extensive
|
||
and efficient set of cryptographic functions.</li>
|
||
<li><a href="https://github.com/tonyg/js-nacl">js-nacl</a> -
|
||
Pure-JavaScript High-level API to Emscripten-compiled libsodium
|
||
routines.</li>
|
||
<li><a href="https://github.com/travist/jsencrypt">jsencrypt</a> -
|
||
JavaScript library to perform OpenSSL RSA Encryption, Decryption, and
|
||
Key Generation.</li>
|
||
<li><a href="https://github.com/h2non/jshashes">JShashes</a> - Fast and
|
||
dependency-free cryptographic hashing library for Node.js and browsers
|
||
(supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC).</li>
|
||
<li><a href="https://github.com/kjur/jsrsasign">jsrsasign</a> - The
|
||
‘jsrsasign’ (RSA-Sign JavaScript Library) is an opensource free
|
||
cryptography library supporting RSA/RSAPSS/ECDSA/DSA
|
||
signing/validation.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Nodejs-Howto">jsThemis</a>
|
||
- 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).</li>
|
||
<li><a href="https://github.com/jedisct1/libsodium.js">libsodium.js</a>
|
||
- libsodium compiled to pure JavaScript, with convenient wrappers.</li>
|
||
<li><a href="https://github.com/vesvault/libVES">libVES.js</a> -
|
||
End-to-end encrypted sharing via cloud repository, secure recovery
|
||
through a viral network of friends in case of key loss.</li>
|
||
<li><a
|
||
href="https://github.com/apache/incubator-milagro-crypto-js">milagro-crypto-js</a>
|
||
- 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.</li>
|
||
<li>noble - high-security, easily auditable set of contained
|
||
cryptographic libraries and tools. Zero dependencies each.
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/paulmillr/noble-ciphers">noble-ciphers</a> —
|
||
cryptographic ciphers, including AES-SIV, Salsa20, ChaCha, Poly1305 and
|
||
FF1</li>
|
||
<li><a href="https://github.com/paulmillr/noble-curves">noble-curves</a>
|
||
— elliptic curve cryptography, including Weierstrass, Edwards,
|
||
Montgomery curves, pairings, hash-to-curve, poseidon hash, schnorr,
|
||
secp256k1, ed25519, ed448, p521, bn254, bls12-381 and others. Also 4kb
|
||
<a
|
||
href="https://github.com/paulmillr/noble-secp256k1">noble-secp256k1</a>,
|
||
<a
|
||
href="https://github.com/paulmillr/noble-ed25519">noble-ed25519</a></li>
|
||
<li><a href="https://github.com/paulmillr/noble-hashes">noble-hashes</a>
|
||
— SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt</li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://github.com/ncb000gt/node.bcrypt.js">node.bcrypt.js</a> -
|
||
bcrypt for Node.js.</li>
|
||
<li><a href="https://github.com/openpgpjs/openpgpjs">OpenPGP.js</a> -
|
||
OpenPGP implementation for JavaScript.</li>
|
||
<li><a href="https://github.com/polycrypt/polycrypt">PolyCrypt</a> -
|
||
Pure JS implementation of the WebCrypto API.</li>
|
||
<li><a href="https://github.com/srijs/rusha">rusha</a> -
|
||
High-performance pure-javascript SHA1 implementation suitable for large
|
||
binary data, reaching up to half the native speed.</li>
|
||
<li><a href="https://github.com/bitwiseshiftleft/sjcl">sjcl</a> -
|
||
Stanford JavaScript Crypto Library.</li>
|
||
<li><a href="https://github.com/dchest/tweetnacl-js">TweetNaCl.js</a> -
|
||
A port of TweetNaCl / NaCl for JavaScript for modern browsers and
|
||
Node.js.</li>
|
||
<li><a href="https://github.com/quartzjer/ursa">URSA</a> - RSA
|
||
public/private key OpenSSL bindings for Node.</li>
|
||
</ul>
|
||
<h3 id="java">Java</h3>
|
||
<ul>
|
||
<li><a href="http://shiro.apache.org/">Apache Shiro</a> - Performs
|
||
authentication, authorization, cryptography and session management.</li>
|
||
<li><a href="https://www.bouncycastle.org/java.html">Bouncy Castle</a> -
|
||
All-purpose cryptographic library. JCA provider, wide range of functions
|
||
from basic helpers to PGP/SMIME operations.</li>
|
||
<li><a href="http://www.flexiprovider.de/">Flexiprovider</a> - Powerful
|
||
toolkit for the Java Cryptography Architecture.</li>
|
||
<li><a href="https://github.com/maxamel/GDH">GDH</a> - Generalized
|
||
Diffie-Hellman key exchange Java library for multiple parties built on
|
||
top of the Vert.x framework.</li>
|
||
<li><a href="https://github.com/tink-crypto/tink-java">Google Tink</a> -
|
||
A small crypto library that provides a safe, simple, agile and fast way
|
||
to accomplish some common crypto tasks.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Java-and-Android-Howto">Java
|
||
Themis</a> - 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).</li>
|
||
<li><a href="http://www.mindrot.org/projects/jBCrypt/">jbcrypt</a> -
|
||
jBCrypt is an implementation the OpenBSD Blowfish password hashing
|
||
algorithm.</li>
|
||
<li><a href="https://github.com/keycloak/keycloak">Keycloak</a> - Open
|
||
Source Identity and Access Management For Modern Applications and
|
||
Services.</li>
|
||
<li><a href="https://github.com/pac4j/pac4j">pac4j</a> - Security
|
||
engine.</li>
|
||
<li><a href="https://github.com/Password4j/password4j">Password4j</a> -
|
||
A Java user-friendly cryptographic library for hashing and checking
|
||
passwords with different Key derivation functions (KDFs) and
|
||
Cryptographic hash functions (CHFs).</li>
|
||
<li><a href="http://abstractj.github.io/kalium/">Project Kalium</a> -
|
||
Java binding to the Networking and Cryptography (NaCl) library with the
|
||
awesomeness of libsodium.</li>
|
||
<li><a href="https://github.com/wg/scrypt">scrypt</a> - Pure Java
|
||
implementation of the scrypt key derivation function and a JNI interface
|
||
to the C implementations, including the SSE2 optimized version.</li>
|
||
<li><a
|
||
href="https://github.com/tersesystems/securitybuilder">securitybuilder</a>
|
||
- Fluent Builder API for JCA/JSSE objects.</li>
|
||
</ul>
|
||
<h3 id="julia">Julia</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/danielsuo/Crypto.jl">Crypto.jl</a> -
|
||
Library that wraps OpenSSL, but also has pure Julia implementations for
|
||
reference.</li>
|
||
<li><a href="https://github.com/JuliaWeb/MbedTLS.jl">MbedTLS.jl</a> -
|
||
Wrapper around the mbed TLS and cryptography C libary.</li>
|
||
<li><a href="https://github.com/staticfloat/Nettle.jl">Nettle.jl</a> -
|
||
Julia wrapper around nettle cryptographic hashing/ encryption library
|
||
providing MD5, SHA1, SHA2 hashing and HMAC functionality, as well as AES
|
||
encryption/decryption.</li>
|
||
<li><a href="https://github.com/staticfloat/SHA.jl">SHA.jl</a> -
|
||
Performant, 100% native-julia SHA1, SHA2-{224,256,384,512}
|
||
implementation.</li>
|
||
</ul>
|
||
<h3 id="lua">Lua</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/somesocks/lua-lockbox">lua-lockbox</a> -
|
||
Collection of cryptographic primitives written in pure Lua.</li>
|
||
<li><a href="https://github.com/mkottman/luacrypto">LuaCrypto</a> - Lua
|
||
bindings to OpenSSL.</li>
|
||
</ul>
|
||
<h3 id="ocaml">OCaml</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/mirage/digestif">Digestif</a> - is a
|
||
toolbox that implements various cryptographic primitives in C and
|
||
OCaml.</li>
|
||
<li><a href="https://github.com/mirleft/ocaml-tls">ocaml-tls</a> - TLS
|
||
in pure OCaml.</li>
|
||
</ul>
|
||
<h3 id="objective-c">Objective-C</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/kelp404/CocoaSecurity">CocoaSecurity</a>
|
||
- AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Objective-C-Howto">ObjC
|
||
Themis</a> - 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).</li>
|
||
<li><a
|
||
href="https://github.com/krzyzanowskim/ObjectivePGP">ObjectivePGP</a> -
|
||
ObjectivePGP is an implementation of OpenPGP protocol for iOS and macOS.
|
||
OpenPGP is the most widely used email encryption standard.</li>
|
||
<li><a href="https://github.com/RNCryptor/RNCryptor">RNCryptor</a> -
|
||
CCCryptor (AES encryption) wrappers for iOS and Mac.</li>
|
||
</ul>
|
||
<h3 id="php">PHP</h3>
|
||
<ul>
|
||
<li><a href="https://paragonie.com/project/halite">halite</a> - Simple
|
||
library for encryption using <code>libsodium</code>.</li>
|
||
<li><a
|
||
href="https://github.com/scrothers/libsodium-laravel">libsodium-laravel</a>
|
||
- Laravel Package Abstraction using <code>libsodium</code>.</li>
|
||
<li><a href="https://github.com/defuse/php-encryption">PHP
|
||
Encryption</a> - Library for encrypting data with a key or password in
|
||
PHP.</li>
|
||
<li><a href="https://github.com/cossacklabs/themis/wiki/PHP-Howto">PHP
|
||
Themis</a> - 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).</li>
|
||
<li><a href="https://github.com/timoh6/TCrypto">TCrypto</a> - TCrypto is
|
||
a simple and flexible PHP 5.3+ in-memory key-value storage library.</li>
|
||
</ul>
|
||
<h3 id="python">Python</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/pyca/bcrypt">bcrypt</a> - Modern
|
||
password hashing for your software and your servers.</li>
|
||
<li><a href="https://github.com/JHUISI/charm">charm</a> - Framework for
|
||
rapidly prototyping cryptosystems.</li>
|
||
<li><a
|
||
href="https://github.com/aditisrinivas97/Crypto-Vinaigrette">Crypto-Vinaigrette</a>
|
||
- Quantum resistant asymmetric key generation tool for digital
|
||
signatures.</li>
|
||
<li><a href="https://cryptography.io/en/latest/">cryptography</a> -
|
||
Python library which exposes cryptographic recipes and primitives.</li>
|
||
<li><a href="https://sourceforge.net/projects/cryptopy/">cryptopy</a> -
|
||
Pure python implementation of cryptographic algorithms and
|
||
applications.</li>
|
||
<li><a
|
||
href="https://github.com/georgemarshall/django-cryptography">django-cryptography</a>
|
||
- Easily encrypt data in Django.</li>
|
||
<li><a href="https://github.com/tlsfuzzer/python-ecdsa">ecdsa</a> - An
|
||
easy-to-use implementation of ECC with support for ECDSA and ECDH.</li>
|
||
<li><a href="https://github.com/davidaurelio/hashids-python">hashids</a>
|
||
- Implementation of <a href="http://hashids.org">hashids</a> in
|
||
Python.</li>
|
||
<li><a href="http://www.paramiko.org/">paramiko</a> - Python
|
||
implementation of the SSHv2 protocol, providing both client and server
|
||
functionality.</li>
|
||
<li><a href="https://github.com/ofek/privy">Privy</a> - An easy, fast
|
||
lib to correctly password-protect your data.</li>
|
||
<li><a href="https://github.com/Legrandin/pycryptodome">pycryptodome</a>
|
||
- Self-contained Python package of low-level cryptographic
|
||
primitives.</li>
|
||
<li><a href="https://github.com/yann2192/pyelliptic">PyElliptic</a> -
|
||
Python OpenSSL wrapper. For modern cryptography with ECC, AES, HMAC,
|
||
Blowfish.</li>
|
||
<li><a href="https://github.com/pyca/pynacl">pynacl</a> - Python binding
|
||
to the Networking and Cryptography (NaCl) library.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Python-Howto">pythemis</a>
|
||
- 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).</li>
|
||
</ul>
|
||
<h3 id="r">R</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rstudio/rscrypt">rscrypt</a> - Package
|
||
for a collection of scrypt cryptographic functions.</li>
|
||
</ul>
|
||
<h3 id="ruby">Ruby</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/codahale/bcrypt-ruby">bcrypt-ruby</a> -
|
||
Ruby binding for the OpenBSD bcrypt() password hashing algorithm,
|
||
allowing you to easily store a secure hash of your users’
|
||
passwords.</li>
|
||
<li><a href="https://github.com/cryptosphere/rbnacl">RbNaCl</a> - Ruby
|
||
binding to the Networking and Cryptography (NaCl) library.</li>
|
||
<li><a href="https://github.com/cossacklabs/themis/wiki/Ruby-Howto">Ruby
|
||
Themis</a> - 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).</li>
|
||
</ul>
|
||
<h3 id="rust">Rust</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/BLAKE3-team/BLAKE3">BLAKE3</a> - is
|
||
official Rust and C implementations of the BLAKE3 cryptographic hash
|
||
function.</li>
|
||
<li><a href="https://github.com/randombit/botan-rs">botan-rs</a> - Botan
|
||
bindings for Rust.</li>
|
||
<li><a
|
||
href="https://github.com/cryptoballot/cryptoballot">cryptoballot</a> -
|
||
Cryptographically secure online voting.</li>
|
||
<li><a href="https://github.com/dalek-cryptography/">dalek
|
||
cryptography</a> - Fast yet safe mid-level API for ECC, Bulletproofs,
|
||
and more.</li>
|
||
<li><a href="https://github.com/google/mundane">mundane</a> - is a Rust
|
||
cryptography library backed by BoringSSL that is difficult to misuse,
|
||
ergonomic, and performant.</li>
|
||
<li><a href="https://github.com/ockam-network/ockam">ockam</a> - is a
|
||
Rust library for end-to-end encryption and mutual authentication.</li>
|
||
<li><a href="https://github.com/libOctavo/octavo">octavo</a> - Highly
|
||
modular & configurable hash & crypto library.</li>
|
||
<li><a href="https://github.com/orion-rs/orion">orion</a> - 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.</li>
|
||
<li><a href="https://github.com/wireapp/proteus">proteus</a> - Axolotl
|
||
protocol implementation, without header keys, in Rust.</li>
|
||
<li><a href="https://github.com/str4d/rage">rage</a> - is a simple,
|
||
modern, and secure file encryption tool, using the age format.</li>
|
||
<li><a href="https://github.com/IronCoreLabs/recrypt-rs">recrypt</a> - A
|
||
pure-Rust library that implements cryptographic primitives for building
|
||
a multi-hop Proxy Re-encryption scheme, known as Transform
|
||
Encryption.</li>
|
||
<li><a href="https://github.com/briansmith/ring">ring</a> - Safe, fast,
|
||
small crypto using Rust & BoringSSL’s cryptography primitives.</li>
|
||
<li><a href="https://github.com/DaGenix/rust-crypto">rust-crypto</a> -
|
||
Mostly pure-Rust implementation of various cryptographic
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/sfackler/rust-openssl">rust-openssl</a>
|
||
- OpenSSL bindings for Rust.</li>
|
||
<li><a href="https://github.com/ctz/rustls">rustls</a> - Rustls is a
|
||
new, modern TLS library written in Rust.</li>
|
||
<li><a href="https://github.com/dnaq/sodiumoxide">sodiumoxide</a> -
|
||
Sodium Oxide: Fast cryptographic library for Rust (bindings to
|
||
libsodium).</li>
|
||
<li><a href="https://github.com/klutzy/suruga">suruga</a> - TLS 1.2
|
||
implementation in Rust.</li>
|
||
<li><a href="https://github.com/briansmith/webpki">webpki</a> - Web PKI
|
||
TLS X.509 certificate validation in Rust.</li>
|
||
</ul>
|
||
<h3 id="scala">Scala</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/IronCoreLabs/recrypt">recrypt</a> -
|
||
Transform encryption library for Scala.</li>
|
||
<li><a href="https://github.com/input-output-hk/scrypto">scrypto</a> -
|
||
Cryptographic primitives for Scala.</li>
|
||
<li><a href="https://github.com/jmcardon/tsec">tsec</a> - A type-safe,
|
||
functional, general purpose security and cryptography library.</li>
|
||
</ul>
|
||
<h3 id="scheme">Scheme</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/caolan/chicken-sodium">chicken-sodium</a> -
|
||
Bindings to libsodium crypto library for Chicken Scheme.</li>
|
||
<li><a
|
||
href="https://wiki.call-cc.org/eggref/5/crypto-tools">crypto-tools</a> -
|
||
Useful cryptographic primitives for Chicken Scheme.</li>
|
||
<li><a href="https://gitlab.com/gnutls/guile/">guile-gnutls</a> - GnuTLS
|
||
bindings for GNU Guile.</li>
|
||
<li><a href="https://github.com/artyom-poptsov/guile-ssh">guile-ssh</a>
|
||
- libssh bindings for GNU Guile.</li>
|
||
<li><a href="https://gitlab.com/weinholt/industria">industria</a> -
|
||
Motley assortment of cryptographic primitives, OpenSSH, DNS.</li>
|
||
</ul>
|
||
<h3 id="swift">Swift</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/krzyzanowskim/CryptoSwift">CryptoSwift</a> -
|
||
Crypto related functions and helpers for Swift implemented in Swift
|
||
programming language.</li>
|
||
<li><a
|
||
href="https://github.com/iosdevzone/IDZSwiftCommonCrypto">IDZSwiftCommonCrypto</a>
|
||
- Wrapper for Apple’s <a
|
||
href="https://opensource.apple.com/source/CommonCrypto/">CommonCrypto</a>
|
||
library written in Swift.</li>
|
||
<li><a href="https://github.com/Zewo/OpenSSL">OpenSSL</a> - Swift
|
||
OpenSSL for macOS and Linux.</li>
|
||
<li><a href="https://github.com/jancassio/SweetHMAC">SweetHMAC</a> -
|
||
Tiny and easy to use Swift class to encrypt strings using HMAC
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/jedisct1/swift-sodium">Swift-Sodium</a>
|
||
- Swift interface to the Sodium library for common crypto operations for
|
||
iOS and macOS.</li>
|
||
<li><a href="https://github.com/SwiftP2P/SwiftSSL">SwiftSSL</a> -
|
||
Elegant crypto toolkit in Swift.</li>
|
||
<li><a
|
||
href="https://github.com/cossacklabs/themis/wiki/Swift-Howto">SwiftThemis</a>
|
||
- 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).</li>
|
||
</ul>
|
||
<h2 id="resources">Resources</h2>
|
||
<h3 id="blogs">Blogs</h3>
|
||
<ul>
|
||
<li><a href="http://blog.cryptographyengineering.com/">A Few Thoughts on
|
||
Cryptographic Engineering</a> - Some random thoughts about crypto.</li>
|
||
<li><a href="http://bristolcrypto.blogspot.co.uk/">Bristol Cryptography
|
||
Blog</a> - Official blog for the University of Bristol cryptography
|
||
research group. It’s a group blog, primarily targeted towards
|
||
cryptographers and crypto students.</li>
|
||
<li><a href="https://blog.engelke.com/tag/webcrypto/">Charles Engelke’s
|
||
Blog</a> - WebCrypto Blog Posts.</li>
|
||
<li><a href="https://rdist.root.org/">Root Labs rdist</a> - Nate Lawson
|
||
and his co-authors write on a variety of topics including hardware
|
||
implementation, cryptographic timing attacks, DRM, and the Commodore
|
||
64.</li>
|
||
<li><a href="https://blog.ironcorelabs.com">Salty Hash</a> - Covers
|
||
topics on encryption, data control, privacy, and security.</li>
|
||
<li><a href="https://www.schneier.com/">Schneier on security</a> - One
|
||
of the oldest and most famous security blogs. Bruce covers topics from
|
||
block cipher cryptanalysis to airport security.</li>
|
||
</ul>
|
||
<h3 id="mailing-lists">Mailing lists</h3>
|
||
<ul>
|
||
<li><a
|
||
href="http://www.metzdowd.com/mailman/listinfo/cryptography">metzdowd.com</a>
|
||
- “Cryptography” is a low-noise moderated mailing list devoted to
|
||
cryptographic technology and its political impact.</li>
|
||
<li><a href="https://moderncrypto.org/">Modern Crypto</a> - Forums for
|
||
discussing modern cryptographic practice.</li>
|
||
<li><a
|
||
href="https://lists.randombit.net/mailman/listinfo/cryptography">randombit.net</a>
|
||
- List for general discussion of cryptography, particularly the
|
||
technical aspects.</li>
|
||
</ul>
|
||
<h3 id="web-tools">Web-tools</h3>
|
||
<ul>
|
||
<li><a href="https://www.boxentriq.com/code-breaking">Boxentriq</a> -
|
||
Easy to use tools for analysis and code-breaking of the most frequent
|
||
ciphers, including Vigenère, Beaufort, Keyed Caesar, Transposition
|
||
Ciphers, etc.</li>
|
||
<li><a
|
||
href="http://manansingh.github.io/Cryptolab-Offline/cryptolab.html">Cryptolab</a>
|
||
- is a set of cryptography related tools.</li>
|
||
<li><a href="http://www.cryptool-online.org/">CrypTool</a> - Great
|
||
variety of ciphers, encryption methods and analysis tools are
|
||
introduced, often together with illustrated examples.</li>
|
||
<li><a href="https://gchq.github.io/CyberChef/">CyberChef</a> - a web
|
||
app for encryption, encoding, compression, and data analysis.</li>
|
||
<li><a href="http://factordb.com/">factordb.com</a> - Factordb.com is
|
||
tool used to store known factorizations of any number.</li>
|
||
<li><a href="https://keybase.io/">keybase.io</a> - Keybase maps your
|
||
identity to your public keys, and vice versa.</li>
|
||
</ul>
|
||
<h3 id="web-sites">Web-sites</h3>
|
||
<ul>
|
||
<li><a href="https://bettercrypto.org/">Applied Crypto Hardening</a> - A
|
||
lot ready to use best practice examples for securing web servers and
|
||
more.</li>
|
||
<li><a
|
||
href="https://dashboard.nbshare.io/apps/reddit/top-crypto-subreddits/">Cryptocurrencies
|
||
Dashboard</a> - A dashboard of most active cryptocurrencies discussed on
|
||
Reddit.</li>
|
||
<li><a href="http://crypto.stackexchange.com/">Cryptography
|
||
Stackexchange</a> - Cryptography Stack Exchange is a question and answer
|
||
site for software developers, mathematicians and others interested in
|
||
cryptography.</li>
|
||
<li><a href="https://cryptohack.org/">Cryptohack</a> - A platform with
|
||
lots of interactive cryptography challenges, similar to Cryptopals.</li>
|
||
<li><a href="http://cryptopals.com/">Cryptopals Crypto Challenges</a> -
|
||
A series of applied cryptography challenges, starting from very basic
|
||
challenges, such as hex to base 64 challanges, and gradually increasing
|
||
the difficulty up to abstract algebra.</li>
|
||
<li><a href="https://paulmillr.com/noble/#demo">Eliptic Curve
|
||
Calculator</a> - simple form that allows to calculate elliptic curve
|
||
public keys and signatures. Features include ability to create custom
|
||
curves and different signature types</li>
|
||
<li><a href="http://www.garykessler.net/library/crypto.html">Garykessler
|
||
Crypto</a> - An Overview of Cryptography.</li>
|
||
<li><a href="https://www.iacr.org/">IACR</a> - The International
|
||
Association for Cryptologic Research is a non-profit scientific
|
||
organization whose purpose is to further research in cryptology and
|
||
related fields.</li>
|
||
<li><a href="https://learncryptography.com/">Learn Cryptography</a> -
|
||
Dedicated to helping people understand how and why the cryptographic
|
||
systems they use everyday without realizing work to secure and protect
|
||
their privacy.</li>
|
||
<li><a href="https://www.reddit.com/r/cryptography/">Subreddit of
|
||
Cryptography</a> - This subreddit is intended for links and discussions
|
||
surrounding the theory and practice of strong cryptography.</li>
|
||
<li><a href="https://www.iacr.org/authors/tikz/">TikZ for
|
||
Cryptographers</a> - A collection of block diagrams of common
|
||
cryptographic functions drawn in TikZ to be used in research papers and
|
||
presentations written in LaTeX.</li>
|
||
<li><a href="https://www.w3.org/TR/WebCryptoAPI/">WebCryptoAPI</a> -
|
||
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.</li>
|
||
</ul>
|
||
<h2 id="contributing">Contributing</h2>
|
||
<p>Your contributions are always welcome! Please take a look at the <a
|
||
href="https://github.com/sobolevn/awesome-cryptography/blob/master/CONTRIBUTING.md">contribution
|
||
guidelines</a> first.</p>
|
||
<h2 id="license">License</h2>
|
||
<p><code>awesome-cryptography</code> by <a
|
||
href="https://github.com/sobolevn"><span class="citation"
|
||
data-cites="sobolevn">@sobolevn</span></a></p>
|
||
<p>To the extent possible under law, the person who associated CC0 with
|
||
<code>awesome-cryptography</code> has waived all copyright and related
|
||
or neighboring rights to <code>awesome-cryptography</code>.</p>
|
||
<p>You should have received a copy of the CC0 legalcode along with this
|
||
work. If not, see <a
|
||
href="https://creativecommons.org/publicdomain/zero/1.0/">https://creativecommons.org/publicdomain/zero/1.0/</a>.</p>
|