- Veramoの謎仕様Proof Type。
- proof.jwtフィールドに、jwtが含まれている。Credential自体がjwtに含まれている。
検証方法
- joseとかにvcdata.proof.jwtを渡すと、簡単にverifyできる
- jwtのvcフィールドに書いてあるcredentialの内容と、vcに書いてある内容が一致しているか、別途バリデーションが必要そう?
import { readFile } from 'fs';
import { jwtVerify, importJWK } from 'jose';
const vcfile = 'samplevc.json';
const jwk = {
"kty": "OKP",
"crv": "Ed25519",
"x": "(略)"
}
readFile(vcfile, 'utf-8', async (err, data) => {
if (err) {
console.error('ファイル読み込みエラー', err);
return;
}
let vcdata = JSON.parse(data);
let jwt = vcdata.proof.jwt;
// 失敗するとJWSSignatureVerificationFailedがthrowされる
let { payload, protectedHeader } = await jwtVerify(jwt, await importJWK(jwk), {
algorithms: ['EdDSA']
})
console.log(payload);
console.log(protectedHeader);
})