MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / parse

Method parse

modules/crypt/etc/pkcs8.js:84–109  ·  view source on GitHub ↗
(buf)

Source from the content-addressed store, hash-verified

82
83export default class PKCS8 {
84 static parse(buf) {
85 // RSA only
86 var key = {};
87 var ber = new BER(buf);
88 if (ber.getTag() != 0x30) // SEQUENCE
89 throw new Error("PKCS8: not a sequence");
90 ber.getLength() // skip the sequence length
91 ber.getInteger(); // skip the Version
92 ber.next(); // skip the AlgorithmIdentifier
93 ber.getTag(); // OCTET STRING that includes the private key in the SEQUENCE
94 ber.getLength();
95 {
96 ber.getTag(); // SEQUENCE
97 ber.getLength();
98 ber.getInteger(); // skip the first INTEGER
99 key.modulus = ber.getInteger();
100 key.exponent = ber.getInteger();
101 key.privExponent = ber.getInteger();
102 key.prim1 = ber.getInteger();
103 key.prim2 = ber.getInteger();
104 key.exponent1 = ber.getInteger();
105 key.exponent2 = ber.getInteger();
106 key.coefficient = ber.getInteger();
107 }
108 return key;
109 };
110 static decrypt(buf, pass) {
111 var ber = new BER(buf);
112 if (ber.getTag() == 0x30) {

Callers 1

decryptMethod · 0.95

Calls 4

getTagMethod · 0.95
getLengthMethod · 0.95
getIntegerMethod · 0.95
nextMethod · 0.95

Tested by

no test coverage detected