Releases: MasterKale/SimpleDigiCreds
Releases · MasterKale/SimpleDigiCreds
v0.5.0 - Stateless presentation verification
v0.4.0 - Generic mdoc request support
- [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
- [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
- [server] Change CBOR library source from JSR to NPM
v0.2.0
v0.1.0
v0.1.0
- An example site can be started via
deno task example:startto test out this project locally - [server] Supports end-to-end OID4VP (draft 24) + mdoc presentation request (unsigned) and
verification (unencrypted)