forked from tornado-packages/noble-curves
P224: fix sha224 tests
This commit is contained in:
parent
1ab77b95dd
commit
cae888d942
@ -1,6 +1,6 @@
|
|||||||
/*! @noble/curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
/*! @noble/curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||||||
import { createCurve } from './_shortw_utils.js';
|
import { createCurve } from './_shortw_utils.js';
|
||||||
import { sha256 } from '@noble/hashes/sha256';
|
import { sha224 } from '@noble/hashes/sha256';
|
||||||
import { Fp } from '@noble/curves/modular';
|
import { Fp } from '@noble/curves/modular';
|
||||||
|
|
||||||
// NIST secp224r1 aka P224
|
// NIST secp224r1 aka P224
|
||||||
@ -20,6 +20,6 @@ export const P224 = createCurve(
|
|||||||
h: BigInt(1),
|
h: BigInt(1),
|
||||||
lowS: false,
|
lowS: false,
|
||||||
} as const,
|
} as const,
|
||||||
sha256 // TODO: replace with sha224 when new @noble/hashes released
|
sha224
|
||||||
);
|
);
|
||||||
export const secp224r1 = P224;
|
export const secp224r1 = P224;
|
||||||
|
@ -41,10 +41,11 @@ should('wychenproof ECDSA vectors', () => {
|
|||||||
for (const group of ecdsa.testGroups) {
|
for (const group of ecdsa.testGroups) {
|
||||||
// Tested in secp256k1.test.js
|
// Tested in secp256k1.test.js
|
||||||
if (group.key.curve === 'secp256k1') continue;
|
if (group.key.curve === 'secp256k1') continue;
|
||||||
// We don't have SHA-224
|
let CURVE = NIST[group.key.curve];
|
||||||
if (group.key.curve === 'secp224r1' && group.sha === 'SHA-224') continue;
|
|
||||||
const CURVE = NIST[group.key.curve];
|
|
||||||
if (!CURVE) continue;
|
if (!CURVE) continue;
|
||||||
|
if (group.key.curve === 'secp224r1' && group.sha !== 'SHA-224') {
|
||||||
|
if (group.sha === 'SHA-256') CURVE = CURVE.create(sha256);
|
||||||
|
}
|
||||||
const pubKey = CURVE.Point.fromHex(group.key.uncompressed);
|
const pubKey = CURVE.Point.fromHex(group.key.uncompressed);
|
||||||
deepStrictEqual(pubKey.x, BigInt(`0x${group.key.wx}`));
|
deepStrictEqual(pubKey.x, BigInt(`0x${group.key.wx}`));
|
||||||
deepStrictEqual(pubKey.y, BigInt(`0x${group.key.wy}`));
|
deepStrictEqual(pubKey.y, BigInt(`0x${group.key.wy}`));
|
||||||
@ -196,17 +197,16 @@ import { default as secp521r1_sha512_test } from './wycheproof/ecdsa_secp521r1_s
|
|||||||
|
|
||||||
import { sha3_224, sha3_256, sha3_384, sha3_512 } from '@noble/hashes/sha3';
|
import { sha3_224, sha3_256, sha3_384, sha3_512 } from '@noble/hashes/sha3';
|
||||||
import { sha512, sha384 } from '@noble/hashes/sha512';
|
import { sha512, sha384 } from '@noble/hashes/sha512';
|
||||||
import { sha256 } from '@noble/hashes/sha256';
|
import { sha224, sha256 } from '@noble/hashes/sha256';
|
||||||
|
|
||||||
const WYCHEPROOF_ECDSA = {
|
const WYCHEPROOF_ECDSA = {
|
||||||
P224: {
|
P224: {
|
||||||
curve: P224,
|
curve: P224,
|
||||||
hashes: {
|
hashes: {
|
||||||
// sha224 not released yet
|
sha224: {
|
||||||
// sha224: {
|
hash: sha224,
|
||||||
// hash: sha224,
|
tests: [secp224r1_sha224_test],
|
||||||
// tests: [secp224r1_sha224_test],
|
},
|
||||||
// },
|
|
||||||
sha256: {
|
sha256: {
|
||||||
hash: sha256,
|
hash: sha256,
|
||||||
tests: [secp224r1_sha256_test],
|
tests: [secp224r1_sha256_test],
|
||||||
|
Loading…
Reference in New Issue
Block a user