Crytpographic Library (PJCL).
initial public release
provided digital signature functionality,
which we had been using internally for our own research
on authentication and identity proofing.
This release adds key agreement
and key derivation functionality. The next release will provide
symmetric and asymmetric encryption primitives, including
AES and RSA. To be notified of future releases you may
sign up for the
user forum, subscribe
to the feed of this blog, or follow me on Twitter (@fcorella).
(Update: The PJCL user forum has been discontinued as of May 27, 2018.)
Functions for implementing a
deterministic random bit generator (DRBG) as specified
NIST SP 800-90Ar1,
and for generating random numbers uniformly distributed over a given range
using the DRBG. A DRBG allows you
to combine multiple sources of entropy for stronger security.
entropy obtained the browser by means of
- Generation of Finite Field Cryptography (FCC) domain parameters for use in DSA and DH, and validation of domain parameters received from an untrusted party, as specified in NIST FIPS 186-4.
- Elliptic curve cryptography with NIST curves P-256 and P-384, including:
- The hash functions SHA-256 and SHA-384.
- The hash-based message authentication code functions HMAC-SHA-256 and HMAC-SHA-384.
- The key derivation function HKDF-SHA-256.
- The password-based key derivation funcion PBKDF2-SHA-256.
- Fast big integer arithmetic, including Karatsuba multiplication.
- Primality testing using Miller-Rabin.
You can download the library free of charge from the PJCL page.