MCPcopy Index your code
hub / github.com/travist/jsencrypt / verifyDocument

Method verifyDocument

test/test.examples.js:317–345  ·  view source on GitHub ↗
(signedDocument)

Source from the content-addressed store, hash-verified

315 }
316
317 verifyDocument(signedDocument) {
318 this.crypt.setPublicKey(this.publicKey);
319
320 const { document, signature, signaturePayload } = signedDocument;
321
322 const currentHash = this.simpleHash(document);
323
324 if (currentHash !== signaturePayload.documentHash) {
325 return { valid: false, reason: 'Document has been modified' };
326 }
327
328 const decryptedPayload = this.crypt.decrypt(signature);
329 if (!decryptedPayload) {
330 return { valid: false, reason: 'Invalid signature' };
331 }
332
333 const parsedPayload = JSON.parse(decryptedPayload);
334
335 if (JSON.stringify(parsedPayload) !== JSON.stringify(signaturePayload)) {
336 return { valid: false, reason: 'Signature payload mismatch' };
337 }
338
339 return {
340 valid: true,
341 signedAt: new Date(signaturePayload.timestamp),
342 signer: signaturePayload.signer,
343 documentHash: signaturePayload.documentHash
344 };
345 }
346 }
347
348 it("should sign and verify documents", function () {

Callers 1

test.examples.jsFile · 0.80

Calls 3

simpleHashMethod · 0.95
setPublicKeyMethod · 0.80
decryptMethod · 0.45

Tested by

no test coverage detected