kjur / jsrsasign

The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES and JSON Web Signature/Token in pure JavaScript.
https://kjur.github.io/jsrsasign
Other
3.25k stars 646 forks source link
3des aes asn1 certificate cms crl decryption dsa ecdsa encryption ocsp rsa sha1 sha2 signature timestamp x509

jsrsasign

license npm version npm downloads jsdeliver downloads CDNJS githubsponsors cryptocurrency

jsrsasign TOP | github | Wiki | DOWNLOADS | TUTORIALS | API REFERENCE | Online Tool | DEMO | NODE TOOL | AddOn | DONATE

The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token/Key in pure JavaScript.

Public page is https://kjur.github.io/jsrsasign .

Your bugfix and pull request contribution are always welcomed :)

NOTICE FOR COMMING 11.0.0 RELEASE

The "jsrsasign" library is a long lived JavaScript library from 2010 developed with old JavaScript style and backword compatibility. From coming release 11.0.0, following are planed and suport them gradually:

NEWS

HIGHLIGHTS

INSTALL

Node NPM

> npm install jsrsasign jsrsasign-util

Bower

> bower install jsrsasign

Or include in HTML from many CDN sites

> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/8.0.20/jsrsasign-all-min.js"></script>

USAGE

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

RECENT SECURITY ADVISORY

published fixed version title/advisory CVE CVSS
2024Jan16 11.0.0 Marvin attack vulnerability for RSA and RSAOAEP decryption CVE-2024-21484 7.5
2022Jun24 10.5.25 JWS and JWT signature validation vulnerability with special characters CVE-2022-25898 ?
2021Apr14 10.2.0 RSA signature validation vulnerability on maleable encoded message CVE-2021-30246 9.1
2020Jun22 8.0.19 ECDSA signature validation vulnerability by accepting wrong ASN.1 encoding CVE-2020-14966 5.5
2020Jun22 8.0.18 RSA RSAES-PKCS1-v1_5 and RSA-OAEP decryption vulnerability with prepending zeros CVE-2020-14967 4.8
2020Jun22 8.0.17 RSA-PSS signature validation vulnerability by prepending zeros CVE-2020-14968 4.2

Here is full published security advisory list.

DONATIONS

If you like jsrsasign and my other project, you can support their development by donation through any of the platform/services below. Thank you as always.

Github Sponsors

You can sponsor jsrsasign with the GitHub Sponsors program.

Cryptocurrency

You can donate cryptocurrency to jsrsasign using the following addresses: