PKCS #8 is the Private-Key Information Syntax Standard, a standard syntax for storing private key information, created by RSA Laboratories.

1 Ax.crypt.PKCS8

PKCS8 constructor, given a signature algorithm.

Copy
// var sigAlgorithm = "SHA/DSA";
var sigAlgorithm = "SHA256withRSA";
var pkcs8 = new Ax.crypt.PKCS8(sigAlgorithm);

2 Encode, sign and verify

The following example shows how to sign data, encode it, and verify it.

Copy
// Alternative signature algorithm:
// var keyAlgorithm = "DSA";
// var keyLength = 1024;
// var sigAlgorithm = "SHA/DSA";

var keyAlgorithm = "RSA";
var keyLength = 2048;
var sigAlgorithm = "SHA256withRSA";

// Generate public and private key
var kp = new Ax.crypt.KeyPair(keyAlgorithm, keyLength);
var publicKey = kp.getPublicKeyAsPEM();
var privateKey = kp.getPrivateKeyAsPEM();

console.log(publicKey);
console.log(privateKey);
	   
var message = "hello world";
var pkcs8 = new Ax.crypt.PKCS8(sigAlgorithm);

//Sign the data
var sign = pkcs8.sign(privateKey, keyAlgorithm, message);
console.log(sign);
//Encodethe data
console.log(pkcs8.encode(sign));
//Verify the data
var verified = pkcs8.verify(publicKey, keyAlgorithm, message, pkcs8.encode(sign));
console.log(verified);
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAub2IpAQ3wnKB18kV4KL9QROr18iiX9A3
YOtE4kyX/2ruIxgtnbtYiqO6O914+1kuxyLKRUbPLZj7yEEMWhHWJj9CQeexICriC61lzy2Q3QhA
peF4/BH5UbxosHHV0ezc/OO9YtK3nqErna4Ke6yYqZnivZU/tVb+M9Kj/FpIhL8VG8J5arzYa1Iy
K9fU/Y9aADRKqFbfJchHL717+8mSoz9AzJO2YscrKMWjjlZIcOxlxXyeAXfA/mMqOtEzEF69xYVX
OhSQe7DhnxhdWNmUI1XIiQR4TIGkJA2Af6KZRnXElBKggCqyjxNEbjQIlyc1wc/mU/y6t98XOgAl
jNhtOwIDAQAB
-----END PUBLIC KEY-----

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5vYikBDfCcoHXyRXgov1BE6vX
yKJf0Ddg60TiTJf/au4jGC2du1iKo7o73Xj7WS7HIspFRs8tmPvIQQxaEdYmP0JB57EgKuILrWXP
LZDdCECl4Xj8EflRvGiwcdXR7Nz8471i0reeoSudrgp7rJipmeK9lT+1Vv4z0qP8WkiEvxUbwnlq
vNhrUjIr19T9j1oANEqoVt8lyEcvvXv7yZKjP0DMk7ZixysoxaOOVkhw7GXFfJ4Bd8D+Yyo60TMQ
Xr3FhVc6FJB7sOGfGF1Y2ZQjVciJBHhMgaQkDYB/oplGdcSUEqCAKrKPE0RuNAiXJzXBz+ZT/Lq3
3xc6ACWM2G07AgMBAAECggEAXSNUhGJ1D3VZ9Lmp1cYFVn+luQOroH4JdvkixpN/2J1nIoP6Q9Dw
+jxVo7VP+EHlOggRA6IZO5UuFGHB7txo1S79a4zh/e5jAVYG6le//4Ym3MduYoAk1D61BF1gye6L
dehBTG+7kbjh5SSjrxaCSvGWiFhx5N3lhFkIz/75xE4sL7GOIAbDTitHpFtSjIBK6CIro3Wx+gK+
93/1H6W/wMZFfFQCbhRZIaQwGWZr2RrbPks9vxwvZE2Mu+p/jQFVjzy5VaeAD+SYwi1H219F2Gkd
KUNu17Ofw0LkKoKhYLs42CvWS24CIAsj6VVKyP78CJtb6UvK8JdyqC8IpHFjKQKBgQD76XsWmrBv
yDK13lmQQi/shPW5ePJwSKvmmPnUqVahh0tEwukPJtXH5HucrejW2p1h5RQV+8ZFUkHUQsZRkNm4
oLg40n0DTq5U+5lffGxwBy5K7eNeLSGsmiL4XXwqDmIer/N412G4Lp7YnAwei5FBeyp34/aCrwFS
RxNLkmnV7wKBgQC8wSfckoRM/ccIVEtKwUFg964O5NUaXmj3yg29FxVB1v0evLbGuGV2seQLFiCM
KYhWoq9fXSqytE9huGOorK+6UTGarpkuiHdapQ3B1avlGY2AwAqErAak53nI9TwtTkX5Y11akHhr
DriNWFPtJLXEmtgnwSyVFwh6wLq5h4/JdQKBgQDlFWhYIAg/PyHOfguYwnfucOM87Z4bOhsJMyhO
mkgr0GtEdrOWkcxrYX5/9y785AWnVrkzXKjrtWgj7S2IU1+LJK0jD1ecQFsM8ViCmxXJst4ISdkw
dX5gBjOzBOC7JiVYns2coNE+uza86Pukc2t+ztDKAkbUhO2Asx365YTVhQKBgEghN+5ePxh80hYo
wCzs9OLtQyKF57mP4mTuXZmovILQeSHJ077UsFFPYWmrJvzo0iTpPkMfAzYPGVaqc8r9UpnMdTw7
BGZ318RX1o3/7RQ7U4uj12Ejq9ZQboWQ0VIu2yaWBhKZqqqekX/SBSBWKu/ajEeE1liS2Lav96r2
VsgRAoGBAMfzp+Eh/80xyWZthBii5mm/8fIt3EO2kEy2MJwlcHUFVbk8kd0vQMKsUiqe0p+FASL+
xFFZEAmGIA3UPw81PNtxijfdbbbn4y5vZg0HN7/+tx4ssQIBO0M4kWMFE8tH0OlRDwWOi6HnMxEj
DJwGOcW+f7fWzxM68v/FkCIPg4hi
-----END PRIVATE KEY-----

[B@2c0f7678
pp39dbbKlI+X0x7aTW2w6jjYzuyeeEhfw8jr8fr5GxY0pP+/apzwU1H3VySEuWjfxp8k2wHXiHrm8IBFAOKalcZ7V5IPT58kkG9wAMU+D3IVpS7yqXlF7cFFgie+f84rcncVVUo8GVTkYvExt5KVvAS7BzsF7MWq3zpUxKNyiqN+9EDxoPIXXS9Gr2h53dsTv+ZKom0sZrX+4lcYHH1VGcvFHVNoZ8Hi/7PzG8uthiyhzzbZDsYJ1YVRlbXnFoBwNodJIk4KWHxbT836fStc1ZQYGGr0sWIeZeYyElC9CctyokZ3k+vW+XKucHy5n1k7wMLozghDagBEO/N3b4a6pQ==
true