summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/iso/isoCrypto/verifyOKP.test.ts
blob: 23ea2aa494b54290e4e8e9c156a9f324f4e66dc8 (plain)
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);
  },
);