diff --git a/docs/index.html b/docs/index.html index bfcc859..4624527 100644 --- a/docs/index.html +++ b/docs/index.html @@ -92,6 +92,12 @@ company: "mesur.io", companyURL: "https://mesur.io/", }, + { + name: "Sudesh Shetty", + url: "https://www.linkedin.com/in/sudesh-r-shetty-6bb67b7/", + company: "SecureKey", + companyURL: "https://securekey.com/", + }, ], // name of the WG wg: "Credentials Community Group", @@ -493,7 +499,7 @@

Cached DID Document

] } } - + @@ -1144,6 +1150,18 @@

Interface

types of object.

+

+ A wallet implementation MAY implement a subset of the interfaces defined below. + + For example: +

+ +

+

Import

@@ -1151,11 +1169,25 @@

Import

representation into wallet software.

- This method may not be necessary, for implementations that rely on + This method may not be necessary for implementations that rely on external storage, such as Encrypted Data Vaults.

+
+

Export

+ +

Only ciphertext wallet contents can be exported.

+ +

Produces a serialized exported wallet representation.

+ +

+ This method may not be necessary for implementations that rely on + external storage, such as Encrypted Data Vaults. +

+
+ +

Unlock

@@ -1165,7 +1197,7 @@

Unlock

Requires knowledge of the password used to lock the wallet.

- This method may not be necessary, for implementations that rely on + This method may not be necessary for implementations that rely on external storage, such as Encrypted Data Vaults.

@@ -1178,7 +1210,7 @@

Lock

Requires knowledge of the password used to lock the wallet.

- This method may not be necessary, for implementations that rely on + This method may not be necessary for implementations that rely on external storage, such as Encrypted Data Vaults.

@@ -1198,6 +1230,13 @@

SignRaw

Must support detached signatures.

+ +

+ This method may not be necessary for implementations that rely on + other dedicated interface function to perform signing. + + For example, a verifiable credential wallet that adds proofs using `Issue,Prove` interfaces might not implement this interface. +

@@ -1210,6 +1249,13 @@

VerifyRaw

Must support detached signatures.

+ +

+ This method may not be necessary for implementations that rely on + other dedicated interface functions to verify signatures. + + For example, a verifiable credential wallet that can verify credential proofs using `Verify` interface might not implement this interface. +

@@ -1227,22 +1273,76 @@

Issue

Takes a Verifiable Credential without a proof, and an - options object, which contains at least a - verificationMethod, and proofPurpose. + options object.

-

Produces as Verifiable Credential.

+

Produces a Verifiable Credential.

+ +

+ Here are the options that can be used to produce a verifiable credential. + Refer to proofs-signatures for various proof options: +

+

+ +
+            let credential = {...} // a verifiable credential without proof
+            let options = {
+              verificationMethod: "did:example:1234#key-1",
+              proofPurpose: "assertionMethod",
+              created: "2017-06-18T21:19:10Z"
+              controller: "did:example:1234",
+              domain: "https://www.example.com",
+              challenge: "0b4e419a-1410-4739-a58d-b37f4db10181",
+              proofType: "Ed25519Signature2018"
+             }
+            let verifiableCredential = wallet.Issue(credential, options)
+        

Prove

Takes an id of a Verifiable Credential, and an - options object, which contains at least a - challenge. + options object.

-

Produces as Verifiable Presentation.

+

Produces a Verifiable Presentation.

+ +

+ Here are the options that can be used to produce a verifiable credentials + Refer to proofs-signatures for various proof options: +

+

+ +
+            let verifiableCredential = {...} // a verifiable credential
+            let options = {
+              verificationMethod: "did:example:1234#key-1",
+              proofPurpose: "assertionMethod",
+              created: "2017-06-18T21:19:10Z"
+              controller: "did:example:1234",
+              domain: "https://www.example.com",
+              challenge: "0b4e419a-1410-4739-a58d-b37f4db10181",
+              proofType: "Ed25519Signature2018"
+             }
+            let verifiableCredential = wallet.Prove(credential, options)
+        
@@ -1253,12 +1353,61 @@

Transfer

-

Export

- -

Only ciphertext wallet contents can be exported.

+

Query

+

Takes a Query and Type as input, and returns a collection of results based on current wallet contents.

+ +

Type input can be wallet implementation specific.

+ +

Since all universal wallet data models are JSON object types, here are the query types that can be supported:

+ + +
+            let search = {
+              "type": "QueryByFrame",
+              "query": {
+                  "@context": {
+                    "@vocab": "http://example.org/"
+                  },
+                  "@type": "Library",
+                  "contains": {
+                    "@type": "Book",
+                    "contains": {
+                      "@type": "Chapter"
+                    }
+                  }
+                }
+             }
+            let results = wallet.Query(search)
+        
-

Produces a serialized exported wallet representation.

+
+            let search = {
+              "type": "PresentationExchange",
+              "query": {
+                  "presentation_definition": {
+                    "id": "32f54163-7166-48f1-93d8-ff217bdb0653",
+                    "locale": "en-US",
+                    "input_descriptors": [{
+                      "id": "name_input",
+                      "name": "Full Legal Name",
+                      "purpose": "We need your full legal name.",
+                      "schema": [
+                        {
+                          "uri": "https://name-standards.com/name.json",
+                          "required": true
+                        }
+                      ]
+                    }]
+                  }
+                }
+             }
+            let results = vcWallet.Query(search)
+        
+