deno.land / std@0.157.0 / node / _tools / test / parallel / test-webcrypto-sign-verify.js

test-webcrypto-sign-verify.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 16.13.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'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());}
std

Version Info

Tagged at
2 years ago