o1c
o1c copied to clipboard
O(1) Cryptography is an easy to use, hard to misuse Java cryptographic library based on O(1) cryptographic algorithms
As discovered in the mini library over in https://github.com/o1c-dev/jcryptobox, it's pretty easy to enable a GitHub Pages site.
It'd be great to have a libsodium-compatibility mode that works with their box, sealed box, secretbox, etc., APIs.
https://csrc.nist.gov/News/2021/lightweight-crypto-finalists-announced Looks like Gimli got nixed as I thought it might. That can be removed now. ISAP made it to the final round as well, so perhaps that'd be a...
In order for the various SPIs to actually be pluggable, some service descriptor classes need to be made to describe the various algorithms. These can be located by ServiceLoader and...
https://openjdk.java.net/jeps/338 This could be interesting to try out and compare with the assembly-optimized variants or if it can help improve any of the Java algorithms.
Consider the design of Themis: https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-session/ Another design to consider is MinimaLT: https://cr.yp.to/tcpip/minimalt-20131031.pdf * https://github.com/nimbus-network/minimalt * https://github.com/yorickvP/MinimaLT A larger survey of security network protocols: https://tools.ietf.org/html/draft-ietf-taps-transport-security-12
The primary feature a good cryptographic library provides for making things easy to use and hard to misuse is documentation; without documentation, the only users who can understand these types...
Consider the design of Themis: https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-message/ And consider the NaCl and libsodium API, the [box](https://doc.libsodium.org/public-key_cryptography/authenticated_encryption) APIs for authenticated public-key encryption, and the [sealed box](https://doc.libsodium.org/public-key_cryptography/sealed_boxes) APIs for anonymous public-key encryption. Create...
Consider the design of Themis: https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-cell/ Similarly, in NaCl and libsodium, this concept is exposed as a [secretbox](https://doc.libsodium.org/secret-key_cryptography/secretbox) API for authenticated encryption, and the [secretstream](https://doc.libsodium.org/secret-key_cryptography/secretstream) API is used as a...
After working out some proof of concept code to try out https://github.com/mit-plv/fiat-crypto for elliptic curve stuff, it turns out to be fairly straightforward to build and include native variants of...