Seeing as this is a general purpose cryptography library that could feasibly be used on desktop, mobile, and web architectures, we should make an effort to implement widely-used standards from various sources. Some such sources and standards (all currently unimplemented in pointycastle) are listed below. Note that I've tried to whittle down the standards to those with considerable common usage; for example, some NIST standards are outdated and have little market share.
This issue will be updated with more standards as I come across them.
EDIT: I've hyperlinked implementations from BouncyCastle where applicable.
EDIT 2: I'm going to strike through algorithms as I implement them (and their tests pass). CCM has been fully implemented.
Seeing as this is a general purpose cryptography library that could feasibly be used on desktop, mobile, and web architectures, we should make an effort to implement widely-used standards from various sources. Some such sources and standards (all currently unimplemented in pointycastle) are listed below. Note that I've tried to whittle down the standards to those with considerable common usage; for example, some NIST standards are outdated and have little market share.
NIST
MACs: KMAC Deterministic Random Bit Generators: Hash_DRBG and HMAC_DRBG Authenticated Block Cipher Modes:
CCMAuthenticated Block Cipher Modes (Proposals): EAX, GCM-SIV, OCBPassword Hashing Competition (2015, in connection with NIST)
Key Derivation Function: Argon2
eSTREAM Contest (2012, by ECRYPT, the EU's cryptography board)
Stream Ciphers: HC-128, Rabbit
This issue will be updated with more standards as I come across them.
EDIT: I've hyperlinked implementations from BouncyCastle where applicable. EDIT 2: I'm going to strike through algorithms as I implement them (and their tests pass). CCM has been fully implemented.