%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const { subtle } = require('crypto').webcrypto; // This is only a partial test. The WebCrypto Web Platform Tests // will provide much greater coverage. // Test Sign/Verify RSASSA-PKCS1-v1_5 { async function test(data) { const ec = new TextEncoder(); const { publicKey, privateKey } = await subtle.generateKey({ name: 'RSASSA-PKCS1-v1_5', modulusLength: 1024, publicExponent: new Uint8Array([1, 0, 1]), hash: 'SHA-256' }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'RSASSA-PKCS1-v1_5' }, privateKey, ec.encode(data)); assert(await subtle.verify({ name: 'RSASSA-PKCS1-v1_5' }, publicKey, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); } // Test Sign/Verify RSA-PSS { async function test(data) { const ec = new TextEncoder(); const { publicKey, privateKey } = await subtle.generateKey({ name: 'RSA-PSS', modulusLength: 4096, publicExponent: new Uint8Array([1, 0, 1]), hash: 'SHA-256' }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'RSA-PSS', saltLength: 256, }, privateKey, ec.encode(data)); assert(await subtle.verify({ name: 'RSA-PSS', saltLength: 256, }, publicKey, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); } // Test Sign/Verify ECDSA { async function test(data) { const ec = new TextEncoder(); const { publicKey, privateKey } = await subtle.generateKey({ name: 'ECDSA', namedCurve: 'P-384', }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'ECDSA', hash: 'SHA-384', }, privateKey, ec.encode(data)); assert(await subtle.verify({ name: 'ECDSA', hash: 'SHA-384', }, publicKey, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); } // Test Sign/Verify HMAC { async function test(data) { const ec = new TextEncoder(); const key = await subtle.generateKey({ name: 'HMAC', length: 256, hash: 'SHA-256' }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'HMAC', }, key, ec.encode(data)); assert(await subtle.verify({ name: 'HMAC', }, key, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); } // Test Sign/Verify Ed25519 { async function test(data) { const ec = new TextEncoder(); const { publicKey, privateKey } = await subtle.generateKey({ name: 'Ed25519', }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'Ed25519', }, privateKey, ec.encode(data)); assert(await subtle.verify({ name: 'Ed25519', }, publicKey, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); } // Test Sign/Verify Ed448 { async function test(data) { const ec = new TextEncoder(); const { publicKey, privateKey } = await subtle.generateKey({ name: 'Ed448', }, true, ['sign', 'verify']); const signature = await subtle.sign({ name: 'Ed448', }, privateKey, ec.encode(data)); assert(await subtle.verify({ name: 'Ed448', }, publicKey, signature, ec.encode(data))); } test('hello world').then(common.mustCall()); }