Files
core_ng/@sammo/crypto/src/ECDSA.test.ts
T
Hide_D 196150bedc dep update
- typescript 5.9 업데이트: Uint8Array 문제 해결
- jest -> vitest (이후엔 그냥 node.test ?)
- @trpc 준비
- node 24
2025-10-08 16:22:48 +09:00

34 lines
1.1 KiB
TypeScript

import { expect, test } from "vitest";
import { ECDSA_sign_bson, ECDSA_verify_bson } from "./ECDSA.js";
import { genKey } from "./ECKey.js";
import { randomBytes } from "./utils.js";
test('basic sign', async () => {
const [signKey, verifyKey] = await genKey();
const misVerifyKey = Buffer.alloc(verifyKey.length);
verifyKey.copy(misVerifyKey);
misVerifyKey[misVerifyKey.length - 2] ^= 1; //1bit
const msg = randomBytes(100);
const misMsg = Buffer.alloc(msg.length);
msg.copy(misMsg);
misMsg[1] ^= 1;
const signature = await ECDSA_sign_bson(signKey, msg);
expect(signature.length).toEqual(96);
const misSignature = Buffer.alloc(signature.length);
signature.copy(misSignature);
misSignature[misSignature.length - 2] ^= 3;
const t0P = ECDSA_verify_bson(verifyKey, msg, signature);
const f1P = ECDSA_verify_bson(misVerifyKey, msg, signature);
const f2P = ECDSA_verify_bson(verifyKey, misMsg, signature);
const f3P = ECDSA_verify_bson(verifyKey, msg, misSignature);
expect(await t0P).toEqual(true);
expect(await f1P).toEqual(false);
expect(await f2P).toEqual(false);
expect(await f3P).toEqual(false);
})