opensource free pure JavaScript cryptographic library supports RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp and CAdES and JSON Web Signature(JWS)/Token(JWT)/Key(JWK)
npm install integrator-jsrsasignjsrsasign
=========
The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free pure JavaScript cryptographic library supports RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, CMS SignedData, TimeStamp and CAdES and JSON Web Signature(JWS)/Token(JWT)/Key(JWK).




Public page is https://kjur.github.io/jsrsasign .
github TOP|API doc|Wiki|Node sample
DIFFERENCE WITH CRYPTO MODULE
-----------------------------
Here is the difference between bundled 'Crypto' module
and this 'jsrsasign' module.
- Crypto module
- fast
- works only on Node.js
- OpenSSL based
- lacking ASN.1 functionality
- provides symmetric ciphers
- lacking RSAPSS signing
- jsrsasign module
- slow
- implemented in pure JavaScript
- works on both Node.js(server) and browsers(client)
- provides ASN.1 parsing/generation functionality
- lacking symmetric ciphers
- provides RSAPSS signing
- also provides support for JSON Web Signatures (JWS) and JSON Web Token (JWT)
AVAILABLE CLASSES AND METHODS
-----------------------------
Most of the classes and methods defined in jsrsasign
available in this jsrsasign npm module.
After loading the module,
> var r = require('jsrsasign');
> var r = require('jsrsasign-util'); // for file I/O utilities
You can refer name spaces, classes, methods and functions
by following variables:
- r.BigInteger - BigInteger class
- r.RSAKey - RSAKey class
- r.ECDSA - KJUR.crypto.ECDSA class
- r.DSA - KJUR.crypto.DSA class
- r.Signature - KJUR.crypto.Signature class
- r.MessageDigest - KJUR.crypto.MessageDigest class
- r.Mac - KJUR.crypto.Mac class
- r.KEYUTIL - KEYUTIL class
- r.ASN1HEX - ASN1HEX class
- r.crypto - KJUR.crypto name space
- r.asn1 - KJUR.asn1 name space
- r.jws - KJUR.jws name space
Please see API reference in the above links.
EXAMPLE(1) SIGNATURE
--------------------
Loading encrypted PKCS#5 private key:
> var rs = require('jsrsasign');
> var rsu = require('jsrsasign-util');
> var pem = rsu.readFile('z1.prv.p5e.pem');
> var prvKey = rs.KEYUTIL.getKey(pem, 'passwd');
Sign string 'aaa' with the loaded private key:
> var sig = new a.Signature({alg: 'SHA1withRSA'});
> sig.init(prvKey);
> sig.updateString('aaa');
> var sigVal = sig.sign();
> sigVal
'd764dcacb...'
MORE TUTORIALS AND SAMPLES
--------------------
- Tutorials in GitHub Wiki
- Sample Node Scripts