lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi all,

I have started to implement and collect cryptographic algorithms
written in pure Lua (5.3)

PLC is not a consistent and properly documented library - Just a
collection of code snippets, located at [1]

 [1] https://github.com/philanc/plc

The rules are pretty simple: all the files are written in pure,
vanilla  Lua 5.3. They use no external Lua or C library. There is no
complex tree of modules requiring other modules. Every file should be
usable standalone, with no strings attached (except where noted).

For the moment, PLC includes:
 - RC4
 - Chacha20 stream encryption and Poly1305 MAC as specified
   in RFC 7539
 - Elliptic curve scalar multiplication based on ec25519
   (barely enough to implement ECDH key exchange)
 - SHA2-256 (contributed on this list by Roberto [2])
 - SHA3-256 and -512 (derived from the code contributed on
   this list by Joseph Wallace [3])
 some non-cryptographic utilities:
 - Base64, Hex encoding/decoding
 - Base58 encoding/decoding
 - Some checksums: CRC-32, Adler-32

 [2] http://lua-users.org/lists/lua-l/2014-03/msg00851.html
 [3] http://lua-users.org/lists/lua-l/2014-03/msg00905.html

Some simplistic tests are provided for each module.

License: MIT  (except where noted for third party implementations)

All suggestions, bug reports and contributions are welcome.

Regards,

Phil