Forge JavaScript crypto library:
Example:
<script type="text/javascript" src="js/util.js"></script>
<script type="text/javascript" src="js/sha1.js"></script>
<script type="text/javascript" src="js/prng.js"></script>
<script type="text/javascript" src="js/random.js"></script>
<script type="text/javascript" src="js/aes.js"></script>
<script type="text/javascript" src="js/jsbn.js"></script>
<script type="text/javascript" src="js/oids.js"></script>
<script type="text/javascript" src="js/asn1.js"></script>
<script type="text/javascript" src="js/rsa.js"></script>
<script type="text/javascript" src="js/pki.js"></script>
<script type="text/javascript">
/*** Generating 1024-bit key-pair */
keys = forge.pki.rsa.generateKeyPair(1024);
/*** public key encryption */
var utf8 = forge.util.encodeUtf8("plaintext");
var ciphertext = keys.publicKey.encrypt(utf8);
/*** private key decryption */
var decrypted = keys.privateKey.decrypt(ciphertext);
var plaintext = forge.util.decodeUtf8(decrypted);
</script>
Creating a certificate (and signing/verifying):
Creating and encrypting/decrypting a PKCS8 private key:
Creating a certificate and connecting a TLS client to a TLS server: