[[ The beta versions of PJCL are now deprecated and no longer being maintained. Use version 1.0.0 or later instead, available on GitHub at https://github.com/fcorella/pjcl.git. ]]
PJCL is a cryptographic library written in JavaScript, currently in beta test, available free of charge under the terms of its license. The initial public release, version 0.9.0, provided digital signature funcionality. A second release, version 0.9.1, added key agreement and key derivation. Revision of those two releases have made minor changes as indicated below and described in their documentations. Additional functionality including encryption will be provided in forthcoming releases.
Please see the documentation of the latest release and the blog posts listed below for additional information.
- License
- Version 0.9.1 Revision 3
- Release date: June 27, 2022
- Fixes bugs found in Version 0.9.1 Revision 2.
- Zip archive of Version 0.9.1 Revision 3
- Version 0.9.1 Revision 2
- Release date: April 13, 2018
- Change: support for how IE obtains browser entropy
- Documentation of Version 0.9.1 Revision 2
- Zip archive of Version 0.9.1 Revision 2
- Version 0.9.1 Revision
1
- Release date: April 2, 2018
- Change: functions named by assigning anonymous functions to global variables, so that the library can be used in Node.js exactly as in the browlser. No impact on API client code
- Documentation of Version 0.9.1 Revision 1
- Zip archive of Version 0.9.1 Revision 1
- Version 0.9.1
- Release date: March 25, 2018
- Changes: addition of DH and ECDH. API changes introducing FFC and ECC domain parameters usable both for digital signature and key exchange
- Documentation of Version 0.9.1
- Zip archive of Version 0.9.1
- Version 0.9.0 Revision
1
- Release date: April 13, 2018
- Change: bug fixes (namespace pollution by unprefixed global variables)
- Documentation of Version 0.9.0 Revision 1
- Zip archive of Version 0.9.0 Revision 1
- Version 0.9.0 (initial public
release, including big integer arithmetic, DSA and
ECDSA)
- Release date: January 9, 2018
- Documentation of Version 0.9.0
- Zip archive of Version 0.9.0
Blog posts related to PJCL:
- Faster Modular Exponentiation in JavaScript
- Pomcor Releases JavaScript Cryptographic and Big Integer Library
- Second Release of PJCL Expands Functionality Following NIST Cryptographic Specifications
- PJCL Can Now Be Used in Node.js Server-Side Code Exactly as in the Browser
A demo of cryptographic authentication for a Node.js web application using PJCL on client and server was made at IIW 26. The following zip archive contains the code for the demo and two flyers summarizing how registration and authentication are implemented. Errata: The code has been updated after the demo to fix bugs. Latest update: May 28, 2018.
Blog posts related to the cryptographic authentication demo:
- Easy, Password-Free, Cryptographic Authentication for Web Applications
- Cryptographic Authentication Is Not That Easy After All
- A Bypass of the Firefox POST Redirection Bug
The IIW demo app emulated the back-end database using JavaScript objects. A more substantial proof of concept of cryptographic authentication that uses a MongoDB database can now be found in the cryptographic authentication page.