vds - v0.1.4
    Preparing search index...

    vds - v0.1.4

    vds logo

    @li0ard/vds
    simple library for visible digital seals (VDS)
    docs




    • Simple: Hides decoding process and provides simple and modern API
    • Type-Safe: Most of the APIs are strictly typed to help your workflow
    • Compliance: Fully complies with ICAO 9303, BSI TR-03137 and other standards
    • Supports Bun, Node.js, Deno, Browsers, Cloudflare Workers
    • Supports many curves from @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, VDSDocument, VDSProp, decodeSeal, FeatureCoding, encodeSeal } from "@li0ard/vds";

    @VDSDocument({ documentRef: 0x5e03, version: 4 })
    class ICAOEmergencyTravelDocument {
    @VDSProp({ tag: 2, coding: FeatureCoding.MRZ })
    mrz!: string;
    }

    const seal = Buffer.from("DC03....", "hex");
    const decodedSeal = Seal.decode(seal);
    const mapped = decodeSeal(decodedSeal, ICAOEmergencyTravelDocument);
    console.log(mapped);

    // Also serialize back
    console.log(encodeSeal(mapped));
    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));