From 06c343b14162ba93b54d0cc63086708f2051c121 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Wed, 25 May 2016 21:02:12 +0300 Subject: [PATCH] Added tests and styleguide. Also prettified all the current resources. Travis support encluded. --- .editorconfig | 13 ++ .gitattributes | 2 + .gitignore | 88 +++++++++ .travis.yml | 12 ++ CONTRIBUTING.md | 56 +++++- README.md | 396 +++++++++++++++++++++----------------- ab-results-README.md.json | 1 + package.json | 45 +++++ 8 files changed, 424 insertions(+), 189 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 ab-results-README.md.json create mode 100644 package.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6aa76f3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +indent_style = spaces +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.py] +indent_style = space +indent_size = 4 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e3461c8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +readme.md merge=union \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c7605f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,88 @@ +#### joe made this: http://goel.io/joe + +#####=== OSX ===##### +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +#####=== Windows ===##### +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +#####=== Linux ===##### +*~ + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +#####=== Node ===##### + +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git +node_modules + diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7562c3c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,12 @@ +language: node_js +node_js: +- '5.0' +sudo: false + +install: + - gem install awesome_bot + - npm install + +script: + - awesome_bot -f README.md -t 10 --allow-redirect + - node test diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dd44d2b..7327139 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,52 @@ # Contributing + + Your contributions are always welcome! ## Guidelines -* Add one link per Pull Request. -* Add the link: `* [project-name](http://example.com/) - A short description ends with a period.` - * Keep descriptions concise. -* Add a section if needed. - * Add the section description. - * Add the section title to Table of Contents. -* Search previous suggestions before making a new one, as yours may be a duplicate. -* Check your spelling and grammar. -* Remove any trailing whitespace. -* Send a Pull Request with the reason why the library is awesome. +- Add one link per commit. + +- Add one commit per Pull Request. + +- Add the link: `- [project-name](http://example.com/) - A short description ends with a period.` + + - Keep descriptions concise. + +- Add a section if needed. + + - Add the section description. + - Add the section title to Table of Contents. + +- Search previous suggestions before making a new one, as yours may be a duplicate. + +- Check your spelling and grammar. + +- Remove any trailing whitespace. + +- Send a Pull Request with the reason why the library is awesome. + +- Make sure the tests are passing. + +## Styleguide + +We enforce you all to use the same style for your submittions. +We are using [`remark-lint`](https://github.com/wooorm/remark-lint) to validate the style of the `README.md` and `CONTRIBUTING.md`. + +Please, refer to [`Rules`](https://github.com/wooorm/remark-lint/blob/master/doc/rules.md) documentation, when in doubt. + +## Testing + +To run tests locally you will need: + +- Ruby +- Node.js + +To execute them: + +```shell +$ gem install awesome_bot +$ npm install +$ node test && awesome_bot -f README.md -t 10 --allow-redirect +``` diff --git a/README.md b/README.md index afc9d8c..f87d6f0 100644 --- a/README.md +++ b/README.md @@ -2,189 +2,227 @@ A curated list of cryptography resources and links + + - [Theory](#theory) - - [Books](#books) - - [Courses](#courses) - - [Articles](#articles) + + - [Articles](#articles) + - [Books](#books) + - [Courses](#courses) + - [Frameworks and Libs](#frameworks-and-libs) - - [C](#c) - - [C++](#cpp) - - [C#](#c-sharp) - - [Clojure](#clojure) - - [Common Lisp](#common-lisp) - - [Delphi](#delphi) - - [Elixir](#elixir) - - [Golang](#go) - - [Haskell](#haskell) - - [Haxe](#hexe) - - [JavaScript](#javascript) - - [Java](#java) - - [Julia](#julia) - - [Lua](#lua) - - [Objective-C](#objective-c) - - [PHP](#php) - - [Python](#python) - - [Ruby](#ruby) - - [Rust](#rust) - - [Scala](#scala) - - [Swift](#swift) -- [Resources](#resources) - - [Websites](#websites) - - [Twitter](#twitter) -- [Web Apps](#web-apps) + + - [C](#c) + - [C#](#c-sharp) + - [C++](#cpp) + - [Clojure](#clojure) + - [Common Lisp](#common-lisp) + - [Delphi](#delphi) + - [Elixir](#elixir) + - [Golang](#go) + - [Haskell](#haskell) + - [Haxe](#haxe) + - [Java](#java) + - [JavaScript](#javascript) + - [Julia](#julia) + - [Lua](#lua) + - [Objective-C](#objective-c) + - [PHP](#php) + - [Python](#python) + - [Ruby](#ruby) + - [Rust](#rust) + - [Scala](#scala) + - [Swift](#swift) + - [Contributing](#contributing) - - [...]() + +- [License](#license) + + - - - -# Theory -#### Books -* [An Introduction to Mathematical Cryptography](http://www.math.brown.edu/~jhs/MathCryptoHome.html) - is an introduction to modern cryptography. -* [Security Engineering](http://www.cl.cam.ac.uk/~rja14/book.html) - There is an extraordinary textbook written by Ross Anderson, professor of computer security at University of Cambridge. -* [OpenSSL Cookbook](https://www.feistyduck.com/library/openssl-cookbook/) - The book about OpenSSL. -* [Crypto101](https://www.crypto101.io/) - Crypto 101 is an introductory course on cryptography. -* [Handbook of Applied Cryptography](http://cacr.uwaterloo.ca/hac/index.html) - This book is intended as a reference for professional cryptographers -* [Introduction to Modern Cryptography](http://www.cs.umd.edu/~jkatz/imc.html) - is an introductory-level treatment of cryptography written from a modern, computer science perspective. -* [The Cryptoparty Handbook](https://unglue.it/work/141611/) - This book provides a comprehensive guide to the various topics of the computer and internet security -* [Cryptography Engineering](https://www.schneier.com/books/cryptography_engineering/) - Learn to build cryptographic protocols that work in the real world - -#### Courses -* [Cryptography I](https://www.coursera.org/learn/crypto) -* [Cryptography - Stanford University](http://online.stanford.edu/course/cryptography) -* [Cybrary Cryptography](https://www.cybrary.it/course/cryptography/) -* [Applied Cryptography](https://www.udacity.com/course/applied-cryptography--cs387) - - -# Frameworks and Libs -#### C -* [cryptlib](http://www.cryptlib.com/) - is an open source cross-platform software security toolkit library -* [retter](https://github.com/maciejczyzewski/retter) - a collection of hash functions, ciphers, tools and libraries. -* [xxHash](https://github.com/Cyan4973/xxHash) - Extremely fast hash algorithm -* [libtomcrypt](https://github.com/libtom/libtomcrypt) - is a fairly comprehensive, modular and portable cryptographic toolkit -* [libgcrypt](http://directory.fsf.org/wiki/Libgcrypt) - is a cryptographic library developed as a separated module of GnuPG. -* [NaCl](https://nacl.cr.yp.to/) - high-speed library for network communication, encryption, decryption, signatures, etc. -* [tiny-AES128-C](https://github.com/kokke/tiny-AES128-C) - Small portable AES128 in C. -* [RHash](https://github.com/rhash/RHash) - Great utility for computing hash sums. - -#### C++ -* [Crypto++](https://www.cryptopp.com/) - Crypto++ Library is a free C++ class library of cryptographic schemes. -* [Bcrypt](http://bcrypt.sourceforge.net/) - a cross platform file encryption utility. -* [Botan](https://botan.randombit.net/) - is a cryptography library written in C++11 -* [libsodium](https://github.com/jedisct1/libsodium) - a modern and easy-to-use crypto library. -* [Nettle](http://www.lysator.liu.se/~nisse/nettle/) - a low-level cryptographic library. -* [s2n](https://github.com/awslabs/s2n) - an implementation of the TLS/SSL protocols - -#### C-sharp -* [Bouncy Castle](https://bouncycastle.org/csharp/index.html) - All-purpose cryptographic library. -* [libsodium-net](https://github.com/adamcaudill/libsodium-net) - libsodium for .NET - A secure cryptographic library. -* [StreamCryptor](https://github.com/bitbeans/StreamCryptor) - Stream encryption & decryption with libsodium and protobuf. - - -#### Clojure -* [buddy-core](https://funcool.github.io/buddy-core/latest/) - Cryptographic Api. -* [pandect](https://github.com/xsc/pandect) - Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure. - -#### Common Lisp -* [crypto-shortcuts](https://github.com/Shinmera/crypto-shortcuts) - Collection of common cryptography functions. -* [ironclad](http://method-combination.net/lisp/ironclad/) - Collection of common crypto shortcuts. -* [trivial-ssh](https://github.com/eudoxia0/trivial-ssh) - an SSH client library for Common Lisp (Built on libssh2) - -#### Delphi -* [DelphiEncryptionCompendium](https://github.com/winkelsdorf/DelphiEncryptionCompendium/releases) - Cryptographic library for Delphi. -* [LockBox](https://sourceforge.net/projects/tplockbox/) - LockBox 3 is a Delphi library for cryptography. -* [SynCrypto](https://github.com/synopse/mORMot/blob/master/SynCrypto.pas) - Fast cryptographic routines (hashing and cypher), implementing AES, XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for speed. -* [TForge](https://bitbucket.org/sergworks/tforge) - TForge is open-source crypto library written in Delphi, compatible with FPC. - -#### Elixir -* [cipher](https://github.com/rubencaro/cipher) - Elixir crypto library to encrypt/decrypt arbitrary binaries. -* [cloak](https://github.com/danielberkompas/cloak) - Cloak makes it easy to use encryption with Ecto. -* [comeonin](https://github.com/elixircnx/comeonin) - Password authorization (bcrypt) library for Elixir. -* [elixir_tea](https://github.com/keichan34/elixir_tea) - TEA implementation in Elixir. -* [elixir-rsa](https://github.com/trapped/elixir-rsa) - `public_key` cryptography wrapper for Elixir. -* [ex_crypto](https://github.com/ntrepid8/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](https://github.com/rozap/exgpg) - Use gpg from Elixir. -* [pot](https://github.com/yuce/pot) - Erlang library for generating one time passwords compatible with Google Authenticator. -* [siphash-elixir](https://github.com/zackehh/siphash-elixir) - Elixir implementation of the SipHash hash family. - -#### Go -* [crypto](https://golang.org/pkg/crypto/) - Official Website Resources. -* [cryptoballot](https://github.com/cryptoballot/cryptoballot) - Cryptographically secure online voting. -* [dedis/crypto](https://github.com/dedis/crypto) - Advanced crypto library for the Go language -* [gocrypto](https://github.com/kisom/gocrypto) - Example source code for the Practical Crypto with Go book. - -#### Haskell -* [Cryptography & Hashing](https://wiki.haskell.org/Applications_and_libraries/Cryptography) - Official Website of Haskell -* [Cryptonite](https://hackage.haskell.org/package/cryptonite) - Cryptonite is a haskell repository of cryptographic primitives. -* [Crypto](http://hackage.haskell.org/packages/#cat:Crypto) - a collaborative Hackage list. -* [Cryptography](http://hackage.haskell.org/packages/#cat:Cryptography) - a collaborative Hackage list. - -#### Hexe -* [haxe-crypto](http://lib.haxe.org/p/haxe-crypto/) - Haxe Cryptography Library. - -#### JavaScript -* [cryptojs](https://github.com/gwjjeff/cryptojs) - Provide standard and secure cryptographic algorithms for NodeJS. -* [javascript-crypto-library](https://github.com/clipperz/javascript-crypto-library) - The JavaScript Crypto Library provides web developers with an extensive and efficient set of cryptographic functions. -* [JShashes](https://github.com/h2non/jshashes) - Fast and dependency-free cryptographic hashing library for node.js and browsers (supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC) -* [sjcl](https://github.com/bitwiseshiftleft/sjcl) - Stanford Javascript Crypto Library. - -#### Java -* [Apache Shiro](http://shiro.apache.org/) - Performs authentication, authorization, cryptography and session management. -* [Bouncy Castle](https://www.bouncycastle.org/java.html) - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations. -* [Google Keyczar](https://github.com/google/keyczar) - Easy to use, yet safe encryption framework with key versioning. -* [pac4j ](https://github.com/pac4j/pac4j) - Security engine. - -#### Julia -* [Crypto.jl](https://github.com/danielsuo/Crypto.jl) - a library that wraps OpenSSL, but also has pure Julia implementations for reference. - -#### Lua -* [LuaCrypto](https://github.com/mkottman/luacrypto) - Lua bindings to OpenSSL. -* [lua-lockbox ](https://github.com/somesocks/lua-lockbox) - a collection of cryptographic primitives written in pure Lua. - -#### Objective-C -* [Themis](https://github.com/cossacklabs/themis) - High-level crypto library, providing basic asymmetric encryption. -* [CocoaSecurity](https://github.com/kelp404/CocoaSecurity) - AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex. -* [RNCryptor](https://github.com/RNCryptor/RNCryptor) - CCCryptor (AES encryption) wrappers for iOS and Mac. - -#### PHP -* [halite](https://paragonie.com/project/halite) - a simple library for encryption using [libsodium](https://github.com/jedisct1/libsodium). -* [PHP Encryption](https://github.com/defuse/php-encryption) - This is a library for encrypting data with a key or password in PHP. -* [TCrypto](https://github.com/timoh6/TCrypto) - TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library. - -#### Python -* [charm](https://github.com/JHUISI/charm) - a framework for rapidly prototyping cryptosystems. -* [cryptopy](https://sourceforge.net/projects/cryptopy/) - is a pure python implmentation of cryptographic algorithms and applications. -* [cryptography](https://cryptography.io/en/latest/) - is a Python library which exposes cryptographic recipes and primitives. -* [Google Keyczar](https://github.com/google/keyczar) - Easy-to-use crypto toolkit -* [pycrypto](https://github.com/dlitz/pycrypto) - The Python Cryptography Toolkit -* [hashids](https://github.com/davidaurelio/hashids-python) - Implementation of [hashids](http://hashids.org) in Python. -* [paramiko](http://www.paramiko.org/) - a Python implementation of the SSHv2 protocol, providing both client and server functionality. -* [pynacl](https://github.com/pyca/pynacl) - Python binding to the Networking and Cryptography (NaCl) library - -#### Ruby -* [RbNaCl](https://github.com/cryptosphere/rbnacl) - Ruby binding to the Networking and Cryptography (NaCl) library. - -#### Rust -* [ring](https://github.com/briansmith/ring) - Safe, fast, small crypto using Rust & BoringSSL's cryptography primitives. -* [webpki](https://github.com/briansmith/webpki) - Web PKI TLS X.509 certificate validation in Rust. -* [rust-crypto](https://github.com/DaGenix/rust-crypto) - a (mostly) pure-Rust implementation of various cryptographic algorithms. -* [sodiumoxide](https://github.com/dnaq/sodiumoxide) - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium). -* [suruga](https://github.com/klutzy/suruga) - TLS 1.2 implementation in Rust. -* [octavo](https://github.com/libOctavo/octavo) - Highly modular & configurable hash & crypto library. -* [rust-openssl](https://github.com/sfackler/rust-openssl) - OpenSSL bindings for Rust. - -#### Scala -* [scrypto](https://github.com/ScorexProject/scrypto) - Cryptographic primitives for Scala. - -#### Swift -* [CryptoSwift](https://github.com/krzyzanowskim/CryptoSwift) - Crypto related functions and helpers for Swift implemented in Swift programming language. -* [IDZSwiftCommonCrypto](https://github.com/iosdevzone/IDZSwiftCommonCrypto) - a wrapper for Apple's Common Crypto library written in Swift. -* [OpenSSL](https://github.com/Zewo/OpenSSL) - Swift OpenSSL for OS X and Linux. -* [SweetHMAC](https://github.com/jancassio/SweetHMAC) - a tiny and easy to use Swift class to encrypt strings using HMAC algorithms. -* [Swift-Sodium](https://github.com/jedisct1/swift-sodium) - Swift interface to the Sodium library for common crypto operations for iOS and OS X. -* [SwiftSSL](https://github.com/SwiftP2P/SwiftSSL) - an Elegant crypto toolkit in Swift. - - -# Contributing - -Your contributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/lk-geimfari/awesome-cryptography/blob/master/CONTRIBUTING.md) first. +## Theory + +### Books + +- [An Introduction to Mathematical Cryptography](http://www.math.brown.edu/~jhs/MathCryptoHome.html) - is an introduction to modern cryptography. +- [Crypto101](https://www.crypto101.io/) - Crypto 101 is an introductory course on cryptography. +- [Cryptography Engineering](https://www.schneier.com/books/cryptography_engineering/) - Learn to build cryptographic protocols that work in the real world. +- [Handbook of Applied Cryptography](http://cacr.uwaterloo.ca/hac/index.html) - This book is intended as a reference for professional cryptographers. +- [Introduction to Modern Cryptography](http://www.cs.umd.edu/~jkatz/imc.html) - is an introductory-level treatment of cryptography written from a modern, computer science perspective. +- [OpenSSL Cookbook](https://www.feistyduck.com/library/openssl-cookbook/) - The book about OpenSSL. +- [Security Engineering](http://www.cl.cam.ac.uk/~rja14/book.html) - There is an extraordinary textbook written by Ross Anderson, professor of computer security at University of Cambridge. +- [The Cryptoparty Handbook](https://unglue.it/work/141611/) - This book provides a comprehensive guide to the various topics of the computer and internet security. + +### Courses + +- [Applied Cryptography](https://www.udacity.com/course/applied-cryptography--cs387) +- [Cryptography - Stanford University](http://online.stanford.edu/course/cryptography) +- [Cryptography I](https://www.coursera.org/learn/crypto) +- [Cybrary Cryptography](https://www.cybrary.it/course/cryptography/) + +## Frameworks and Libs + +### C + +- [cryptlib](http://www.cryptlib.com/) - is an open source cross-platform software security toolkit library. +- [libgcrypt](http://directory.fsf.org/wiki/Libgcrypt) - is a cryptographic library developed as a separated module of GnuPG. +- [libtomcrypt](https://github.com/libtom/libtomcrypt) - is a fairly comprehensive, modular and portable cryptographic toolkit. +- [NaCl](https://nacl.cr.yp.to/) - high-speed library for network communication, encryption, decryption, signatures, etc. +- [retter](https://github.com/maciejczyzewski/retter) - a collection of hash functions, ciphers, tools and libraries. +- [RHash](https://github.com/rhash/RHash) - Great utility for computing hash sums. +- [tiny-AES128-C](https://github.com/kokke/tiny-AES128-C) - Small portable AES128 in C. +- [xxHash](https://github.com/Cyan4973/xxHash) - Extremely fast hash algorithm. + +### C++ + +- [Bcrypt](http://bcrypt.sourceforge.net/) - a cross platform file encryption utility. +- [Botan](https://botan.randombit.net/) - is a cryptography library written in `C++11`. +- [Crypto++](https://www.cryptopp.com/) - Crypto++ Library is a free C++ class library of cryptographic schemes. +- [libsodium](https://github.com/jedisct1/libsodium) - a modern and easy-to-use crypto library. +- [Nettle](http://www.lysator.liu.se/~nisse/nettle/) - a low-level cryptographic library. +- [s2n](https://github.com/awslabs/s2n) - an implementation of the TLS/SSL protocols. + +### C-sharp + +- [Bouncy Castle](https://bouncycastle.org/csharp/index.html) - All-purpose cryptographic library. +- [libsodium-net](https://github.com/adamcaudill/libsodium-net) - libsodium for .NET - A secure cryptographic library. +- [StreamCryptor](https://github.com/bitbeans/StreamCryptor) - Stream encryption & decryption with libsodium and protobuf. + +### Clojure + +- [buddy-core](https://funcool.github.io/buddy-core/latest/) - Cryptographic Api. +- [pandect](https://github.com/xsc/pandect) - Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure. + +### Common Lisp + +- [crypto-shortcuts](https://github.com/Shinmera/crypto-shortcuts) - Collection of common cryptography functions. +- [ironclad](http://method-combination.net/lisp/ironclad/) - Collection of common crypto shortcuts. +- [trivial-ssh](https://github.com/eudoxia0/trivial-ssh) - an SSH client library for Common Lisp (Built on libssh2) + +### Delphi + +- [DelphiEncryptionCompendium](https://github.com/winkelsdorf/DelphiEncryptionCompendium/releases) - Cryptographic library for Delphi. +- [LockBox](https://sourceforge.net/projects/tplockbox/) - LockBox 3 is a Delphi library for cryptography. +- [SynCrypto](https://github.com/synopse/mORMot/blob/master/SynCrypto.pas) - Fast cryptographic routines (hashing and cypher), implementing AES, XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for speed. +- [TForge](https://bitbucket.org/sergworks/tforge) - TForge is open-source crypto library written in Delphi, compatible with FPC. + +### Elixir + +- [cipher](https://github.com/rubencaro/cipher) - Elixir crypto library to encrypt/decrypt arbitrary binaries. +- [cloak](https://github.com/danielberkompas/cloak) - Cloak makes it easy to use encryption with Ecto. +- [comeonin](https://github.com/elixircnx/comeonin) - Password authorization (bcrypt) library for Elixir. +- [elixir-rsa](https://github.com/trapped/elixir-rsa) - `public_key` cryptography wrapper for Elixir. +- [elixir_tea](https://github.com/keichan34/elixir_tea) - TEA implementation in Elixir. +- [ex_crypto](https://github.com/ntrepid8/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](https://github.com/rozap/exgpg) - Use gpg from Elixir. +- [pot](https://github.com/yuce/pot) - Erlang library for generating one time passwords compatible with Google Authenticator. +- [siphash-elixir](https://github.com/zackehh/siphash-elixir) - Elixir implementation of the SipHash hash family. + +### Go + +- [crypto](https://golang.org/pkg/crypto/) - Official Website Resources. +- [cryptoballot](https://github.com/cryptoballot/cryptoballot) - Cryptographically secure online voting. +- [dedis/crypto](https://github.com/dedis/crypto) - Advanced crypto library for the Go language. +- [gocrypto](https://github.com/kisom/gocrypto) - Example source code for the Practical Crypto with Go book. + +### Haskell + +- [Crypto](http://hackage.haskell.org/packages/#cat:Crypto) - a collaborative Hackage list. +- [Cryptography](http://hackage.haskell.org/packages/#cat:Cryptography) - a collaborative Hackage list. +- [Cryptography & Hashing](https://wiki.haskell.org/Applications_and_libraries/Cryptography) - Official Website of Haskell. +- [Cryptonite](https://hackage.haskell.org/package/cryptonite) - Cryptonite is a haskell repository of cryptographic primitives. + +### Haxe + +- [haxe-crypto](http://lib.haxe.org/p/haxe-crypto/) - Haxe Cryptography Library. + +### JavaScript + +- [cryptojs](https://github.com/gwjjeff/cryptojs) - Provide standard and secure cryptographic algorithms for NodeJS. +- [javascript-crypto-library](https://github.com/clipperz/javascript-crypto-library) - The JavaScript Crypto Library provides web developers with an extensive and efficient set of cryptographic functions. +- [JShashes](https://github.com/h2non/jshashes) - Fast and dependency-free cryptographic hashing library for node.js and browsers (supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC) +- [sjcl](https://github.com/bitwiseshiftleft/sjcl) - Stanford Javascript Crypto Library. + +### Java + +- [Apache Shiro](http://shiro.apache.org/) - Performs authentication, authorization, cryptography and session management. +- [Bouncy Castle](https://www.bouncycastle.org/java.html) - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations. +- [Google Keyczar](https://github.com/google/keyczar) - Easy to use, yet safe encryption framework with key versioning. +- [pac4j](https://github.com/pac4j/pac4j) - Security engine. + +### Julia + +- [Crypto.jl](https://github.com/danielsuo/Crypto.jl) - a library that wraps OpenSSL, but also has pure Julia implementations for reference. + +### Lua + +- [lua-lockbox](https://github.com/somesocks/lua-lockbox) - a collection of cryptographic primitives written in pure Lua. +- [LuaCrypto](https://github.com/mkottman/luacrypto) - Lua bindings to OpenSSL. + +### Objective-C + +- [CocoaSecurity](https://github.com/kelp404/CocoaSecurity) - AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex. +- [RNCryptor](https://github.com/RNCryptor/RNCryptor) - CCCryptor (AES encryption) wrappers for iOS and Mac. +- [Themis](https://github.com/cossacklabs/themis) - High-level crypto library, providing basic asymmetric encryption. + +### PHP + +- [halite](https://paragonie.com/project/halite) - a simple library for encryption using [libsodium](https://github.com/jedisct1/libsodium). +- [PHP Encryption](https://github.com/defuse/php-encryption) - This is a library for encrypting data with a key or password in PHP. +- [TCrypto](https://github.com/timoh6/TCrypto) - TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library. + +### Python + +- [charm](https://github.com/JHUISI/charm) - a framework for rapidly prototyping cryptosystems. +- [cryptography](https://cryptography.io/en/latest/) - is a Python library which exposes cryptographic recipes and primitives. +- [cryptopy](https://sourceforge.net/projects/cryptopy/) - is a pure python implmentation of cryptographic algorithms and applications. +- [Google Keyczar](https://github.com/google/keyczar) - Easy-to-use crypto toolkit. +- [hashids](https://github.com/davidaurelio/hashids-python) - Implementation of [hashids](http://hashids.org) in Python. +- [paramiko](http://www.paramiko.org/) - a Python implementation of the SSHv2 protocol, providing both client and server functionality. +- [pycrypto](https://github.com/dlitz/pycrypto) - The Python Cryptography Toolkit. +- [pynacl](https://github.com/pyca/pynacl) - Python binding to the Networking and Cryptography (NaCl) library. + +### Ruby + +- [RbNaCl](https://github.com/cryptosphere/rbnacl) - Ruby binding to the Networking and Cryptography (NaCl) library. + +### Rust + +- [octavo](https://github.com/libOctavo/octavo) - Highly modular & configurable hash & crypto library. +- [ring](https://github.com/briansmith/ring) - Safe, fast, small crypto using Rust & BoringSSL's cryptography primitives. +- [rust-crypto](https://github.com/DaGenix/rust-crypto) - a (mostly) pure-Rust implementation of various cryptographic algorithms. +- [rust-openssl](https://github.com/sfackler/rust-openssl) - OpenSSL bindings for Rust. +- [sodiumoxide](https://github.com/dnaq/sodiumoxide) - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium). +- [suruga](https://github.com/klutzy/suruga) - TLS 1.2 implementation in Rust. +- [webpki](https://github.com/briansmith/webpki) - Web PKI TLS X.509 certificate validation in Rust. + +### Scala + +- [scrypto](https://github.com/ScorexProject/scrypto) - Cryptographic primitives for Scala. + +### Swift + +- [CryptoSwift](https://github.com/krzyzanowskim/CryptoSwift) - Crypto related functions and helpers for Swift implemented in Swift programming language. +- [IDZSwiftCommonCrypto](https://github.com/iosdevzone/IDZSwiftCommonCrypto) - a wrapper for Apple's Common Crypto library written in Swift. +- [OpenSSL](https://github.com/Zewo/OpenSSL) - Swift OpenSSL for OS X and Linux. +- [SweetHMAC](https://github.com/jancassio/SweetHMAC) - a tiny and easy to use Swift class to encrypt strings using HMAC algorithms. +- [Swift-Sodium](https://github.com/jedisct1/swift-sodium) - Swift interface to the Sodium library for common crypto operations for iOS and OS X. +- [SwiftSSL](https://github.com/SwiftP2P/SwiftSSL) - an Elegant crypto toolkit in Swift. + +## Contributing + +Your contributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/sobolevn/awesome-cryptography/blob/master/CONTRIBUTING.md) first. + +## License + +`awesome-cryptography` by sobolevn + +To the extent possible under law, the person who associated CC0 with +`awesome-cryptography` has waived all copyright and related or neighboring +rights to `awesome-cryptography`. + +You should have received a copy of the CC0 legalcode along with this +work. If not, see . diff --git a/ab-results-README.md.json b/ab-results-README.md.json new file mode 100644 index 0000000..164cb55 --- /dev/null +++ b/ab-results-README.md.json @@ -0,0 +1 @@ +{"date":"2016-05-25 20:54:39 +0300","links":["https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg","https://github.com/sindresorhus/awesome","http://www.math.brown.edu/~jhs/MathCryptoHome.html","https://www.crypto101.io/","https://www.schneier.com/books/cryptography_engineering/","http://cacr.uwaterloo.ca/hac/index.html","http://www.cs.umd.edu/~jkatz/imc.html","https://www.feistyduck.com/library/openssl-cookbook/","http://www.cl.cam.ac.uk/~rja14/book.html","https://unglue.it/work/141611/","https://www.udacity.com/course/applied-cryptography--cs387","http://online.stanford.edu/course/cryptography","https://www.coursera.org/learn/crypto","https://www.cybrary.it/course/cryptography/","http://www.cryptlib.com/","http://directory.fsf.org/wiki/Libgcrypt","https://github.com/libtom/libtomcrypt","https://nacl.cr.yp.to/","https://github.com/maciejczyzewski/retter","https://github.com/rhash/RHash","https://github.com/kokke/tiny-AES128-C","https://github.com/Cyan4973/xxHash","http://bcrypt.sourceforge.net/","https://botan.randombit.net/","https://www.cryptopp.com/","https://github.com/jedisct1/libsodium","http://www.lysator.liu.se/~nisse/nettle/","https://github.com/awslabs/s2n","https://bouncycastle.org/csharp/index.html","https://github.com/adamcaudill/libsodium-net","https://github.com/bitbeans/StreamCryptor","https://funcool.github.io/buddy-core/latest/","https://github.com/xsc/pandect","https://github.com/Shinmera/crypto-shortcuts","http://method-combination.net/lisp/ironclad/","https://github.com/eudoxia0/trivial-ssh","https://github.com/winkelsdorf/DelphiEncryptionCompendium/releases","https://sourceforge.net/projects/tplockbox/","https://github.com/synopse/mORMot/blob/master/SynCrypto.pas","https://bitbucket.org/sergworks/tforge","https://github.com/rubencaro/cipher","https://github.com/danielberkompas/cloak","https://github.com/elixircnx/comeonin","https://github.com/trapped/elixir-rsa","https://github.com/keichan34/elixir_tea","https://github.com/ntrepid8/ex_crypto","https://github.com/rozap/exgpg","https://github.com/yuce/pot","https://github.com/zackehh/siphash-elixir","https://golang.org/pkg/crypto/","https://github.com/cryptoballot/cryptoballot","https://github.com/dedis/crypto","https://github.com/kisom/gocrypto","http://hackage.haskell.org/packages/#cat:Crypto","http://hackage.haskell.org/packages/#cat:Cryptography","https://wiki.haskell.org/Applications_and_libraries/Cryptography","https://hackage.haskell.org/package/cryptonite","http://lib.haxe.org/p/haxe-crypto/","https://github.com/gwjjeff/cryptojs","https://github.com/clipperz/javascript-crypto-library","https://github.com/h2non/jshashes","https://github.com/bitwiseshiftleft/sjcl","http://shiro.apache.org/","https://www.bouncycastle.org/java.html","https://github.com/google/keyczar","https://github.com/pac4j/pac4j","https://github.com/danielsuo/Crypto.jl","https://github.com/somesocks/lua-lockbox","https://github.com/mkottman/luacrypto","https://github.com/kelp404/CocoaSecurity","https://github.com/RNCryptor/RNCryptor","https://github.com/cossacklabs/themis","https://paragonie.com/project/halite","https://github.com/jedisct1/libsodium","https://github.com/defuse/php-encryption","https://github.com/timoh6/TCrypto","https://github.com/JHUISI/charm","https://cryptography.io/en/latest/","https://sourceforge.net/projects/cryptopy/","https://github.com/google/keyczar","https://github.com/davidaurelio/hashids-python","http://hashids.org","http://www.paramiko.org/","https://github.com/dlitz/pycrypto","https://github.com/pyca/pynacl","https://github.com/cryptosphere/rbnacl","https://github.com/libOctavo/octavo","https://github.com/briansmith/ring","https://github.com/DaGenix/rust-crypto","https://github.com/sfackler/rust-openssl","https://github.com/dnaq/sodiumoxide","https://github.com/klutzy/suruga","https://github.com/briansmith/webpki","https://github.com/ScorexProject/scrypto","https://github.com/krzyzanowskim/CryptoSwift","https://github.com/iosdevzone/IDZSwiftCommonCrypto","https://github.com/Zewo/OpenSSL","https://github.com/jancassio/SweetHMAC","https://github.com/jedisct1/swift-sodium","https://github.com/SwiftP2P/SwiftSSL","https://github.com/sobolevn/awesome-cryptography/blob/master/CONTRIBUTING.md","http://creativecommons.org/publicdomain/zero/1.0/"],"results":[{"url":"http://www.cryptlib.com/","status":-1,"error":"execution expired","headers":{},"loc":72}]} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..50454bf --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "awesome-cryptography", + "version": "1.0.0", + "description": "A curated list of cryptography resources and links.", + "main": "index.js", + "scripts": { + "test": "./node_modules/remark/bin/remark README.md CONTRIBUTING.md -f" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sobolevn/awesome-cryptography.git" + }, + "keywords": [ + "awesome-list", + "awesome", + "cryptography" + ], + "author": "sobolevn", + "license": "CC-BY-1.0", + "bugs": { + "url": "https://github.com/sobolevn/awesome-cryptography/issues" + }, + "homepage": "https://github.com/sobolevn/awesome-cryptography#readme", + "dependencies": { + "remark": "^4.2.2", + "remark-lint": "^3.2.1", + "remark-lint-alphabetize-lists": "^1.0.4" + }, + "remarkConfig": { + "plugins": { + "lint": { + "maximum-line-length": 350, + "list-item-indent": "space", + "no-tabs": null, + "external": [ + "remark-lint-alphabetize-lists", + "remark-validate-links" + ] + } + }, + "settings": { + "commonmark": true + } + } +}