Operations
Below are the methods exposed by the SIWYS keymaster client SDKs.
DID Operations
Create an Identity
await Keymaster.createId({ name: "Paul Revere" });
Get a DID Document
await Keymaster.resolveDID({
did: "did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
});
Delete a DID
await Keymaster.removeId({
did: "did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
});
Set Current DID
await Keymaster.setCurrentId("identity-name-1");
Templates / Schemas
Create a Template / Schema
const schema = {
$schema: "http://json-schema.org/draft-07/schema#",
title: "Drivers License",
type: "object",
properties: {
licenseNumber: 1234567890,
firstName: "Paul",
lastName: "Revere",
isValid: true,
},
required: ["licenseNumber", "firstName", "lastName"],
};
await Keymaster.createSchema(schema);
Challenges & Responses
Create a Challenge
await Keymaster.createChallenge({
callback: "https://www.your-domain.com/api/auth",
});
Create a Response
await Keymaster.createResponse(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Verify Response
await Keymaster.verifyResponse(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Credentials
Issue Credential
await Keymaster.issueCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Bind Credential
await Keymaster.bindCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZw",
);
Get Credential
await Keymaster.getCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Update a Credential
await Keymaster.updateCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
{},
);
Accept Credentials
await Keymaster.acceptCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Decrypt Message
await Keymaster.decryptMessage(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);
Publish Credentials
await Keymaster.publishCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
{ reveal: true },
);
Custom Headers
Add Custom Header
await Keymaster.addCustomHeader("authorization", "base64-encoded-string");
Remove Custom Header
await Keymaster.removeCustomHeader("authorization");