MCPcopy Create free account
hub / github.com/WICG/webpackage / validateSignatures

Method validateSignatures

js/sign/src/core/signed-web-bundle.ts:90–120  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

88 }
89
90 validateSignatures(): SignatureValidationResult[] {
91 const webBundleHash = calcWebBundleHash(this.pureWebBundle);
92 const ibCbor = this.integrityBlock.toStrippedCbor();
93
94 return this.integrityBlock.getSignatureStack().map((signature) => {
95 try {
96 const [keyType, publicKey] = IntegrityBlock.parseSignatureAttributes(
97 signature.signatureAttributes
98 );
99 const keyObject = parseRawPublicKey(keyType, publicKey);
100 const derivedBundleId = new WebBundleId(keyObject).serialize();
101 const attrCbor = encode(signature.signatureAttributes);
102 const dataToBeSigned = generateDataToBeSigned(
103 webBundleHash,
104 ibCbor,
105 attrCbor
106 );
107 const isValid = verifySignature(
108 dataToBeSigned,
109 signature.signature,
110 keyObject
111 );
112 return { status: 'success', isValid, derivedBundleId };
113 } catch (err) {
114 return {
115 status: 'error',
116 error: err instanceof Error ? err.message : String(err),
117 };
118 }
119 });
120 }
121
122 getWebBundleId(): string {
123 return this.integrityBlock.getWebBundleId();

Callers 2

parseArgumentsFunction · 0.80

Calls 8

calcWebBundleHashFunction · 0.90
parseRawPublicKeyFunction · 0.90
generateDataToBeSignedFunction · 0.90
verifySignatureFunction · 0.90
toStrippedCborMethod · 0.80
getSignatureStackMethod · 0.80
serializeMethod · 0.45

Tested by

no test coverage detected