@li0ard/vds
simple library for visible digital seals (VDS)
docs
@noble/curves# from NPM
npm i @li0ard/vds
# from JSR
bunx jsr add @li0ard/vds
import { Seal } from "@li0ard/vds";
const seal = Buffer.from("DC03....", "hex");
const decodedSeal = Seal.decode(seal);
console.log(decodedSeal);
import { Seal, Verifier } from "@li0ard/vds";
import { brainpoolP256r1 } from "@noble/curves/misc.js";
const publicKey = Buffer.from("0408....", "hex");
const verifier = new Verifier(brainpoolP256r1, publicKey);
const seal = Buffer.from("DC03....", "hex");
const decodedSeal = Seal.decode(seal);
console.log(verifier.verifySeal(decodedSeal));
import { Seal, mapSealToFeatures, type SealSchema } from "@li0ard/vds";
const ICAO_EMERGENCY_TRAVEL_DOCUMENT = {
documentRef: 0x5e03,
version: 4,
features: [
{
name: "MRZ",
coding: FeatureCoding.MRZ,
tag: 2,
required: true
}
]
} as const satisfies SealSchema;
const seal = Buffer.from("DC03....", "hex");
const decodedSeal = Seal.decode(seal);
console.log(mapSealToFeatures(decodedSeal, schema)); // - { "MRZ": "..." }
import { ICAOBarcode } from "@li0ard/vds";
const barcode = "RDB1B...";
const decodedBarcode = ICAOBarcode.decode(barcode);
console.log(decodedBarcode);
import { ICAOBarcode, Verifier } from "@li0ard/vds";
import { brainpoolP256r1 } from "@noble/curves/misc.js";
const publicKey = Buffer.from("0408....", "hex");
const verifier = new Verifier(brainpoolP256r1, publicKey);
const barcode = "RDB1B...";
const decodedBarcode = ICAOBarcode.decode(barcode);
console.log(verifier.verifyBarcode(decodedBarcode));