Skip to content

Releases: MasterKale/SimpleDigiCreds

v0.5.0 - Stateless presentation verification

28 Apr 23:00
cae1f95

Choose a tag to compare

  • [server] Calls to verifyPresentationResponse() can now be stateless if the front end sends back the request nonce after verification (#18)
  • [server] verifyPresentationResponse() now returns claims as verified.credential1 instead of verified.cred1 (#19)

v0.4.0 - Generic mdoc request support

27 Apr 06:38
37bab72

Choose a tag to compare

  • [server] Presentation requests can now be generated for mdoc credentials using different doctypes and more complex claim paths, and for SD-JWT-VC credentials with more complex paths (#16)

Example requests

const request = await generatePresentationRequest({
  credentialOptions: {
    format: "mdoc",
    doctype: "org.iso.7367.1.mVRC",
    claimPathPrefix: "org.iso.18013.5.1",
    desiredClaims: ["registration_number", "date_of_registration", "vehicle_holder"],
  },
  requestOrigin: "http://localhost:8000",
});
// Alternative types for values of `credentialOptions` above
import type {
  OID4VPMdocCredentialOptionsSimple, // <---- new
  OID4VPMdocCredentialOptionsFull,   // <---- new
  OID4VPSDJWTCredentialOptions,
} from "@simpledigicreds/server";
// A straightforward European PID mdoc request
const mdocPIDRequest: OID4VPMdocCredentialOptionsSimple = {
  format: "mdoc",
  doctype: "eu.europa.ec.eudi.pid.1",
  claimPathPrefix: "eu.europa.ec.eudi.pid.1",
  desiredClaims: ["family_name", "given_name", "nationality"],
};
// An mdoc request with claims across multiple namespaces
const mdocRequestFull: OID4VPMdocCredentialOptionsFull = {
  format: "mdoc",
  doctype: "org.iso.7367.1.mVRC",
  desiredClaims: [
    ["org.iso.23220.1", "issue_date"],
    ["org.iso.23220.1", "issuing_authority_unicode"],
    ["org.iso.7367.1", "vehicle_holder"],
    ["org.iso.7367.1", "registration_number"],
  ],
};
// A more complex SD-JWT-VC request with a mix of single-path and multi-path claims
const sdjwtvcRequestComplex: OID4VPSDJWTCredentialOptions = {
  format: "sd-jwt-vc",
  acceptedVCTValues: ["urn:eudi:pid:1"],
  desiredClaims: [
    "given_name",
    "family_name",
    ["age_equal_or_over", "18"],  // <---- new
  ],
};

v0.3.0 - Support for encrypted responses

26 Apr 17:14
ceac08e

Choose a tag to compare

  • [server] Supports encrypted responses by default (#14)

Encrypted Responses

Use of @simpledigicreds/server will now request and handle encrypted responses by default:

import { generatePresentationOptions, verifyPresentationResponse } from '@simpledigicreds/server';

/* server */
const presentationRequest = await generatePresentationRequest({
  credentialOptions: {
    format: 'mdl',
    desiredClaims: ['family_name', 'given_name'],
  },
  requestOrigin: 'http://localhost:8000',
});
const { dcapiOptions } = presentationRequest;

/* browser */
if (typeof window.DigitalCredential === 'function') {
  const presentation = await navigator.credentials.get(dcapiOptions);
}

/* server */
const verified = await verifyPresentationResponse({
  data: presentation.data,
  request: presentationRequest,
});

It remains possible to make unencrypted responses by specifying encryptResponse: false when calling generatePresentationRequest():

const mdlRequest = await generatePresentationRequest({
  credentialOptions: {
    format: "mdl",
    desiredClaims: ["family_name", "given_name"],
  },
  requestOrigin: "http://localhost:8000",
  encryptResponse: false,  // <----
});

v0.2.1

18 Apr 06:09
7994ae6

Choose a tag to compare

  • [server] Change CBOR library source from JSR to NPM

v0.2.0

18 Apr 06:01
36f09e7

Choose a tag to compare

  • [server] Supports end-to-end OID4VP + SD-JWT-VC presentation request (unsigned) and verification (unencrypted) (#10)
  • [server] generateRequestOptions() has been renamted to generatePresentationOptions(), and verifyResponse() is now verifyPresentationResponse() (#9)

v0.1.0

13 Apr 05:17
8669cfb

Choose a tag to compare

v0.1.0

  • An example site can be started via deno task example:start to test out this project locally
  • [server] Supports end-to-end OID4VP (draft 24) + mdoc presentation request (unsigned) and
    verification (unencrypted)