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
|
import { assert } from 'https://deno.land/std@0.198.0/assert/mod.ts';
import { COSEALG, COSECRV, COSEKEYS, COSEKTY, COSEPublicKeyOKP } from '../../cose.ts';
import { verifyOKP } from './verifyOKP.ts';
import { isoBase64URL } from '../index.ts';
Deno.test(
'should verify a signature signed with an Ed25519 public key',
async () => {
const cosePublicKey: COSEPublicKeyOKP = new Map();
cosePublicKey.set(COSEKEYS.kty, COSEKTY.OKP);
cosePublicKey.set(COSEKEYS.alg, COSEALG.EdDSA);
cosePublicKey.set(COSEKEYS.crv, COSECRV.ED25519);
cosePublicKey.set(
COSEKEYS.x,
isoBase64URL.toBuffer('bN-2dTH53XfUq55T1RkvXMpwHV0dRVnMBPxuOBm1-vI'),
);
const data = isoBase64URL.toBuffer(
'SZYN5YgOjGh0NBcPZHZgW4_krrmihjLHmVzzuoMdl2NBAAAAMpHf6teVnkR1rSabDUgr4IkAIBqlqljErWIWWTGYn6Lqjsb8p3djr7sVZW7WYoECyh5xpAEBAycgBiFYIGzftnUx-d131KueU9UZL1zKcB1dHUVZzAT8bjgZtfrytEHOGqAdESuKacg0dIwKWfEP8VP4or6CINxkD5qWQYw',
);
const signature = isoBase64URL.toBuffer(
'HdoQloEiGSUHf9dJXbVzyWNbDh0K25tpNQQpj5hrkhCcdfz0pCBPtqChka_4kfIbhf6JyY1EGAuf9pQdwqJVBQ',
);
const verified = await verifyOKP({
cosePublicKey,
data,
signature,
});
assert(verified);
},
);
|