UNPKG

@dwn-protocol/id-sdk

Version:

SDK for accessing the features and capabilities

111 lines (110 loc) 4.26 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Convert } from './common/index.js'; import { Ed25519 } from './crypto/index.js'; import { createJwt, decodeJwt, VerifiableCredential } from './credentials/credential.js'; import { PresentationExchange } from './credentials/presentation.js'; /** * The VC API is used to issue, present and verify VCs * * @beta */ export class VcApi { constructor(options) { this.agent = options.agent; this.connectedDid = options.connectedDid; } createCredential(issuer, subject, data, type) { return __awaiter(this, void 0, void 0, function* () { const vc = VerifiableCredential.create({ issuer, subject, data, type, }); return vc; }); } signCredential(vc, signOptions) { return __awaiter(this, void 0, void 0, function* () { return yield vc.sign(signOptions); }); } createJWT(payload, signOptions) { return __awaiter(this, void 0, void 0, function* () { return yield createJwt(payload, signOptions); }); } decodeJWT(jwt) { return __awaiter(this, void 0, void 0, function* () { return decodeJwt(jwt); }); } parseJWT(jwt) { return __awaiter(this, void 0, void 0, function* () { return yield VerifiableCredential.parseJwt(jwt); }); } verifyJWT(jwt) { return __awaiter(this, void 0, void 0, function* () { try { VerifiableCredential.verify(jwt); return true; } catch (e) { console.log('verifyJWT error', e); return false; } }); } createPresentation(vcJwts, presentationDefinition) { return __awaiter(this, void 0, void 0, function* () { return PresentationExchange.createPresentationFromCredentials(vcJwts, presentationDefinition); }); } satisfiesPresentation(vcJwts, presentationDefinition) { return __awaiter(this, void 0, void 0, function* () { try { PresentationExchange.validateDefinition(presentationDefinition); PresentationExchange.satisfiesPresentationDefinition(vcJwts, presentationDefinition); return true; } catch (err) { return false; } }); } decodePresentation(jwt) { return __awaiter(this, void 0, void 0, function* () { const [encodedHeader, encodedPayload, encodedSignature] = jwt.split('.'); return { header: Convert.base64Url(encodedHeader).toObject(), payload: Convert.base64Url(encodedPayload).toObject(), signature: encodedSignature }; }); } evaluatePresentation(presentationDefinition, presentationResult) { return __awaiter(this, void 0, void 0, function* () { return PresentationExchange.evaluatePresentation(presentationDefinition, presentationResult.presentation); }); } validateSubmission(presentationSubmission) { return __awaiter(this, void 0, void 0, function* () { return PresentationExchange.validateSubmission(presentationSubmission); }); } EdDsaSigner(privateKey) { return (data) => __awaiter(this, void 0, void 0, function* () { const signature = yield Ed25519.sign({ data, key: privateKey }); return signature; }); } }