mirror of
https://github.com/denoland/deno.git
synced 2024-11-27 16:10:57 -05:00
f5e46c9bf2
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
154 lines
3.8 KiB
JavaScript
154 lines
3.8 KiB
JavaScript
// 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());
|
|
}
|
|
|
|
// 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
|
|
// TODO(cjihrig): Pending support in Deno core.
|
|
// {
|
|
// 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());
|
|
// }
|