-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCRYDI3.ts
33 lines (31 loc) · 865 Bytes
/
CRYDI3.ts
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
const dilithium = require("../util/api");
export const signer = (privateKeyJwk: any) => {
return {
async sign({ data }: { data: Uint8Array }) {
const api = await dilithium.init();
const signature = await api.sign(data, privateKeyJwk);
return Uint8Array.from(Buffer.from(signature, "base64"));
},
};
};
export const verifier = (publicKeyJwk: any) => {
return {
async verify({
data,
signature,
}: {
data: Uint8Array;
signature: Uint8Array;
}) {
let verified = false;
try {
const api = await dilithium.init();
const sig = Buffer.from(signature).toString("base64");
verified = await api.verify(data, sig, publicKeyJwk);
} catch (e) {
// console.error('An error occurred when verifying signature: ', e);
}
return verified;
},
};
};