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

Function decodeTBS

modules/crypt/etc/x509.js:56–82  ·  view source on GitHub ↗
(buf)

Source from the content-addressed store, hash-verified

54 };
55 },
56 decodeTBS(buf) {
57 let tbs = {};
58 let ber = new BER(buf);
59 if (ber.getTag() != 0x30)
60 throw new Error("x509: malformed TBS");
61 ber.getLength();
62 if (ber.peek() & 0x80) {
63 ber.skip(1);
64 tbs.version = ber.next();
65 }
66 tbs.serialNumber = ber.next();
67 tbs.signature = ber.next();
68 tbs.issuer = ber.next();
69
70 let validity = new BER(ber.next());
71 if (validity.getTag() != 0x30)
72 throw new Error("x509: malformed TBS");
73 validity.getLength();
74 let from = validity.next();
75 let to = validity.next();
76 from = parseDate(String.fromArrayBuffer(from.buffer.slice(from.byteOffset + 2, from.byteOffset + 2 + from.length - 2)));
77 to = parseDate(String.fromArrayBuffer(to.buffer.slice(to.byteOffset + 2, to.byteOffset + 2 + to.length - 2)));
78 tbs.validity = {from, to};
79 tbs.subject = ber.next();
80 tbs.subjectPublicKeyInfo = ber.next();
81 return tbs;
82 },
83 getSPK(spki) { // Subject Public Key Info
84 spki = decodeSPKI(spki);
85 if (!spki)

Callers

nothing calls this directly

Calls 8

getTagMethod · 0.95
getLengthMethod · 0.95
peekMethod · 0.95
skipMethod · 0.95
nextMethod · 0.95
parseDateFunction · 0.85
fromArrayBufferMethod · 0.65
sliceMethod · 0.65

Tested by

no test coverage detected