pidCrypt JavaScript crypto library:
Example:
<script type="text/javascript" src="js/pidcrypt.js"></script> <script type="text/javascript" src="js/pidcrypt_util.js"></script> <script type="text/javascript" src="js/asn1.js"></script> <script type="text/javascript" src="js/jsbn.js"></script> <script type="text/javascript" src="js/rng.js"></script> <script type="text/javascript" src="js/prng4.js"></script> <script type="text/javascript" src="js/rsa.js"></script> <script type="text/javascript"> /*-----------------------------------------------------------* * ENCRYPT: RSA 1024 bit * *-----------------------------------------------------------*/ // public key var params = certParser(public_key_1024); var key = pidCryptUtil.decodeBase64(params.b64); // new RSA instance var rsa = new pidCrypt.RSA(); /* RSA encryption * get the modulus and exponent from certificate (ASN1 parsing) * pem(Array of Bytes) */ // ASN1 parsing var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key)); var tree = asn.toHexTree(); // setting the public key for encryption with retrieved ASN.1 tree rsa.setPublicKeyFromASN(tree); /*** encrypt */ var crypted = rsa.encrypt("plaintext"); vat fromHex = pidCryptUtil.encodeBase64(pidCryptUtil.convertFromHex(crypted)); var ciphertext = pidCryptUtil.fragment(fromHex,64) /*-----------------------------------------------------------* * DECRYPT: RSA 1024 bit * *-----------------------------------------------------------*/ // private key params = certParser(private_key_1024); var key = pidCryptUtil.decodeBase64(params.b64); // new RSA instance var rsa = new pidCrypt.RSA(); /* RSA decryption * get the parameters from certificate (ASN1 parsing) * pem(Array of Bytes) */ // ASN1 parsing asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key)); tree = asn.toHexTree(); // setting the private key for decryption with retrieved ASN.1 tree rsa.setPrivateKeyFromASN(tree); /*** decrypt */ ciphertext = pidCryptUtil.decodeBase64(pidCryptUtil.stripLineFeeds(ciphertext)); var plaintext = rsa.decrypt(pidCryptUtil.convertToHex(ciphertext)); </script>