Here are libraries and topics related to cryptography in Lua.
Libraries:
- [Lua Lockbox] - a collection of cryptographic primitives written in pure Lua. Contains implementations of:
- MD2, MD4, MD5, RIPEMD-128, RIPEMD-160, SHA-1, SHA-2-224, SHA-2-256 digests
- DES, 3DES, AES-128, AES-192, AES-256, TEA, XTEA block ciphers
- ECB, CBC, PCBC, CFB, OFB, CTR block cipher modes
- HMAC and PBKDF2.
- [lmd5] (5.0/5.1) - an MD2/MD4/MD5/SHA1/SHA2/RIPEMD160 digest library for Lua. Binds to crypto part of [OpenSSL]. (LuizHenriqueDeFigueiredo)
- [md5] ([doc]) (5.0/5.1/5.2) - a MD5 hash (digest) function, a crypt/decrypt pair based on MD5 and CFB, and a crypt/decrypt pair based on DES 56. It uses its own MD5 and DES implementations in C. (Maintained by Kepler but based on [md5] by RobertoIerusalimschy.)
- [LuaMHash] (5.0) - [mhash] (LGPL) library binding.
- [LuaCrypto] (5.0/5.1) - a Lua frontend to the crypto part of [OpenSSL] library. Provides digests (MD5, SHA-1, HMAC, etc) and crypto-grade random number generators. [This fork] also provides encryption/decryption and signing/verification.
- lua-openssl [zhaozg/lua-openssl] [efelix/lua-openssl] - a Lua frontend to [OpenSSL]. Which 100% compat with luacrypto [1] and almost compat with luasec [2].
- [lua-digest-crc32lua] (5.1) - crc32 implemented in Lua; used by ModuleCompressDeflateLua (DavidManura)
- [SHA-1 and HMAC] (5.1) - SHA1 and HMAC-SHA1 implementated in Lua.
- [kikito's HMAC-SHA1] (5.1) - Pure lua implementation based on Jeffrey Friedl's code, cleaned up by kikito.
- SecureHashAlgorithm (5.2) - SHA224/SHA256 implemented in Lua.
- SecureHashAlgorithmBw (5.3) - SHA224/SHA256 implemented in Lua 5.3, with bitwise operators.
- [sha2] - Lua binding for the SHA-256/384/512 BSD-licensed C implementation by Aaron Gifford plus HMAC (CosminApreutesei)
- [lua-crypt] (5.0) - An one-function library that provides the POSIX crypt() function for Lua (AlexandreErwinIttner)
- [LuaSec] (5.1) - a Lua frontend to the SSL part of [OpenSSL] library. Provides secure TLS/SSL communication; depends on Lua
Socket for TCP connection.
- [ratchet] - provides generic socket control mechanism for large numbers of sockets without using OS-level threads or losing the ease of synchronous socket programming. Supports TLS sockets with [OpenSSL]. [announce]
- LuaApr (5.1) - Lua binding to the Apache Portable Runtime which provides MD5 and SHA1 digest functions (PeterOdding)
- [slncrypto] small C library and binding for SHA-1 and blowfish LuaList:2005-02/msg00744.html [LuaDist]
- [LuaPolarSSL] (5.1) - [PolarSSL] interface to Lua.
- [lua-nacl] - Pure Lua implementation of [NaCl]: Networking and Cryptography library. Supports *salsa and poly1305. Uses "bit" (Lua
Bit
Op) library. "work in progress"
- [lcrypt] C implementation binding to libTomCrypt and libTomMath. Many hashes (MD2, MD4, MD5, RMD128, rmd160, RMD256, RMD320, SHA1, SHA224, SHA256, SHA384, SHA512, TIGER, WHIRLPOOL) and ciphers (AES, ANUBIS, BLOWFISH, CAST5, DES, DES3, KASUMI, KHAZAD, KSEED, NOEKEON, RC2, RC5, RC6, SAFERP, SKIPJACK, TWOFISH, XTEA) plus other capabilities (e.g. zlib, base64, and bigint). Includes [rsa.lua] (RSA) using this library. "It was written to provide the basis for ssh capabilities for Lua."
- [leetreveil/lmd5] MD5 with bindings to openssl, Win32
Wincrypt.h
, and OSX CommonCrypto/CommonDigest.h
.
- [luaxyssl] - Lua binding to [xyssl] (cryptographic library for embedded systems) (replaced by [polarssl]). Includes digests (md5, sh, sh1, sh2, sha256, hmac), crypto (aes, rc4, rsa, dh), SSL (using luasocket).
- [luahash] - includes own C implementations of sha1/sha2/md5 (rjek)
- [AesFileEncrypt](5.1/5.2) - Lua binding to [FileEncrypt]. Has no external dependences.
- [luaossl](5.1/5.2/5.3) - Comprehensive binding to OpenSSL, including X.509 certificate (with 1:1 ancillary bindings to sub-objects like names, chains, stores, extensions, etc), HMAC, digest, cipher, public-private key, PKCS12, and bignum APIs. Includes SSL and SSL_CONTEXT bindings, but doesn't do yet do SSL/TLS I/O (see cqueues project for asynchronous TLS I/O). Developed and maintained on Linux, OS X, Solaris, AIX, FreeBSD, NetBSD, and OpenBSD.
- [lua-resty-nettle] LuaJIT FFI bindings for Nettle (a low-level cryptographic library)
- [lua-argon2] (5.1/5.2/5.3) Lua binding for [Argon2], a password hashing function that won the [Password Hashing Competition].
- [Pure Lua Crypto] (5.3) - a collection of cryptographic functions, and related utilities, implemented in pure Lua. Includes NORX authenticated encryption, chacha20 and poly1305 authenticated encryption, curve25519 functions, rabbit stream encryption and rc4, Blake2b hash, sha2, sha3 (keccak), base64 and base58 encoding (with Bitcoin alphabet), crc32 and adler32 checksums.
- [luatweetnacl] (5.1+) - A simple binding to the Nacl crypto library (strong cryptography, authenticated stream encryption, public key encryption based on curve25519). The Tweet Nacl code is included.
- [luazen] (5.1+) - A small self-contained library with various cryptographic, compression and encoding functions: Encryption (NORX, RC4), hash (Blake2b, MD5), key derivation (Argon2i), ECDH key exchange (curve25519), signature (ed25519), compression (LZF), and encoding (base58, base64). No dependencies.
Sub-topics:
- SSL / OpenSSL SSL/TLS sockets
- Lua
Sec (synchronous) (OpenSSL)
- ratchet (coroutine asynchronous). (OpenSSL)
- luaxyssl (xyssl)
- luaossl (bindings to manipulate SSL and SSL_CONTEXT objects, but not yet SSL_read or SSL_write)
- [luadtls] (binding to [tinydtls] a lightweight implementation of DTLS)
- lua-openssl (OpenSSL binding both crypto and TLS/SSL)
- OpenSSL crypto
- Lua
Crypto (crypto binding)
- lua-openssl (full support crypto and TLS/SSL)
- lmd5 (small MDx/SHAx digest binding)
- luaossl
- lua-openssl (OpenSSL binding both crypto and TLS/SSL)
- MD5
- lmd5 (small OpenSSL MDx/SHAx digest binding)
- md5 (C reimplementation; digest, encryption, decryption)
- LuaMHash (mhash LGPL binding; large number of hash algorithms)
- Lua
Crypto (OpenSSL crypto binding)
- lua-openssl (OpenSSL binding both crypto and TLS/SSL)
- Lua/APR [3]
- lcrypt binding to libTomCrypt and libTomMath
- leetreveil/lmd5 - bindings to openssl, Win32 Wincrypt.h, and OSX CommonCrypto?/CommonDigest?.h.
- luaxyssl (xyssl)
- luahash (C re-implementation)
- SHA
- lmd5 (small OpenSSL MDx/SHAx digest binding)
- LuaMHash (mhash LGPL binding; large number of hash algorithms)
- Lua
Crypto (OpenSSL crypto binding)
- lua-openssl (OpenSSL binding both crypto and TLS/SSL)
- SecureHashAlgorithm (SHA224/SHA256 Lua implementation)
- SHA-1 and HMAC (SHA1 and HMAC-SHA1 Lua implementation)
- sha2 (Lua binding to SHA-256/384/512 BSD-licensed C plus HMAC)
- Lua/APR [3]
- slncrypto (small C impl)
- lcrypt binding to libTomCrypt and libTomMath
- luaxyssl (xyssl)
- luahash (C re-implementation)
- CRC
- LuaMHash (mhash LGPL binding; large number of hash algorithms)
- lua-digest-crc32lua (Lua implementation)
- [Do other OpenSSL bindings support CRC calculations too?]
- DES
- md5 (C reimplementation; encryption, decryption)
- lcrypt binding to libTomCrypt and libTomMath
- lua-openssl (OpenSSL binding both crypto and TLS/SSL)
- bigint
- [bigint] arbitrarily large integer math library (C++)
RecentChanges · preferences
edit · history
Last edited June 10, 2017 11:14 pm GMT (diff)