2020-11-05 15:28:56 -07:00
|
|
|
# API
|
|
|
|
|
2020-11-18 13:51:39 -07:00
|
|
|
## claims.verify(uri, [fingerprint], [opts])
|
2020-11-05 15:28:56 -07:00
|
|
|
|
2020-11-18 13:51:39 -07:00
|
|
|
_(async)_ doip.claims.verify(uri, [fingerprint], [opts])
|
2020-11-05 15:28:56 -07:00
|
|
|
|
|
|
|
Verifies the identity behind the provided **uri** using the **fingerprint**.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-11-05 19:39:36 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
2020-11-07 18:05:34 -07:00
|
|
|
| ----------- | ------ | --------- | -------------------------------- |
|
2020-11-05 19:39:36 -07:00
|
|
|
| uri | string | true | the URI to an identity to verify |
|
|
|
|
| fingerprint | string | false | the fingerprint of the claim |
|
|
|
|
| opts | object | false | options (see below) |
|
2020-11-05 15:28:56 -07:00
|
|
|
|
|
|
|
**Options**
|
|
|
|
|
2020-11-05 19:39:36 -07:00
|
|
|
| Name | Type | Default value | Description |
|
2020-11-07 18:05:34 -07:00
|
|
|
| ----------------- | ------- | -------------------- | ------------------------------------------------------------------- |
|
2020-11-05 19:39:36 -07:00
|
|
|
| returnMatchesOnly | boolean | false | only return matching service providers, do not attempt verification |
|
2020-12-10 15:22:10 -07:00
|
|
|
| proxyPolicy | string | 'adaptive' | when to use a proxy ['adaptive', 'fallback', 'always', 'never'] |
|
2020-11-05 19:39:36 -07:00
|
|
|
| doipProxyHostname | string | 'proxy.keyoxide.org' | the hostname of the proxy server |
|
|
|
|
|
|
|
|
When the `proxyPolicy` option is to `adaptive`, the chosen strategy is
|
|
|
|
the one suggested by the service provider.
|
2020-11-05 15:28:56 -07:00
|
|
|
|
|
|
|
**Returns**
|
2020-11-05 19:39:36 -07:00
|
|
|
|
|
|
|
An object with the results of the identity claim verification containing a
|
2020-11-18 13:51:39 -07:00
|
|
|
boolean named `isVerified` and a
|
|
|
|
[serviceproviderData](serviceproviderdataobject.md#service-provider-data-object)
|
2020-11-05 19:39:36 -07:00
|
|
|
object.
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"isVerified": true,
|
|
|
|
"serviceproviderData": { ... }
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
If `opts.returnMatchesOnly` is `true`, this function instead returns a list of
|
|
|
|
service providers matched to the provided `uri`.
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
## claims.verify(uriArray, [fingerprint], [opts])
|
|
|
|
|
|
|
|
_(async)_ doip.claims.verify(array, [fingerprint], [opts])
|
|
|
|
|
|
|
|
Verifies the identity behind the provided **array of uris** using the **fingerprint**.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ----------- | ------ | --------- | ---------------------------- |
|
|
|
|
| uriArray | array | true | array of uris |
|
|
|
|
| fingerprint | string | false | the fingerprint of the claim |
|
|
|
|
| opts | object | false | options (see below) |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
**Options**
|
|
|
|
|
|
|
|
See [claims.verify(uri, ...)](#claimsverifyuri-fingerprint-opts).
|
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
An array of objects with claim verification results (see
|
|
|
|
[claims.verify(uri, ...)](#claimsverifyuri-fingerprint-opts)).
|
|
|
|
|
|
|
|
## claims.verify(key, [fingerprint], [opts])
|
|
|
|
|
|
|
|
_(async)_ doip.claims.verify(key, [fingerprint], [opts])
|
|
|
|
|
|
|
|
Verifies the identity behind the claims contained within the provided
|
|
|
|
**key** using the **fingerprint**. This key is outputted by the
|
2020-12-05 15:14:09 -07:00
|
|
|
[keys.fetch.\*()](#keysfetchuriuri) commands.
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ----------- | ------ | --------- | ---------------------------- |
|
|
|
|
| key | object | true | a public key |
|
|
|
|
| fingerprint | string | false | the fingerprint of the claim |
|
|
|
|
| opts | object | false | options (see below) |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
**Options**
|
|
|
|
|
|
|
|
See [claims.verify(uri, ...)](#claimsverifyuri-fingerprint-opts).
|
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
An array of objects with claim verification results (see
|
|
|
|
[claims.verify(uri, ...)](#claimsverifyuri-fingerprint-opts)).
|
|
|
|
|
|
|
|
## keys.fetch.uri(uri)
|
|
|
|
|
|
|
|
_(async)_ keys.fetch.uri(uri)
|
|
|
|
|
|
|
|
Fetches a key based on the provided `uri`. This simply serves as a shortcut to
|
|
|
|
other `keys.fetch.*` commands.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ---- | ------ | --------- | --------------------- |
|
|
|
|
| uri | string | true | public key identifier |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
Possible formats for `uri`:
|
|
|
|
|
|
|
|
`hkp:FINGERPRINT` ⇒ `keys.fetch.hkp(FINGERPRINT)`
|
|
|
|
`hkp:FINGERPRINT:KEYSERVER` ⇒ `keys.fetch.hkp(FINGERPRINT, KEYSERVER)`
|
|
|
|
`hkp:EMAIL` ⇒ `keys.fetch.hkp(EMAIL)`
|
|
|
|
`hkp:EMAIL:KEYSERVER` ⇒ `keys.fetch.hkp(EMAIL, KEYSERVER)`
|
|
|
|
`wkd:EMAIL` ⇒ `keys.fetch.wkd(EMAIL)`
|
2020-12-05 15:14:09 -07:00
|
|
|
`kb:USERNAME:FINGERPRINT` ⇒ `keys.fetch.keybase(USERNAME, FINGERPRINT)`
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
A public key object.
|
|
|
|
|
|
|
|
## keys.fetch.hkp(fingerprint, [keyserverBaseUrl])
|
|
|
|
|
|
|
|
_(async)_ keys.fetch.hkp(fingerprint, [keyserverBaseUrl])
|
|
|
|
|
|
|
|
Fetches a key using HKP-compatible key servers.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ---------------- | ------ | --------- | --------------------- |
|
|
|
|
| fingerprint | string | true | public key identifier |
|
|
|
|
| keyserverBaseUrl | string | false | base URL of keyserver |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
`keyserverBaseUrl` defaults to `https://keys.openpgp.org/`.
|
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
A public key object.
|
|
|
|
|
|
|
|
## keys.fetch.hkp(email, [keyserverBaseUrl])
|
|
|
|
|
|
|
|
_(async)_ keys.fetch.hkp(email, [keyserverBaseUrl])
|
|
|
|
|
|
|
|
Fetches a key using HKP-compatible key servers.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ---------------- | ------ | --------- | --------------------- |
|
|
|
|
| email | string | true | public key identifier |
|
|
|
|
| keyserverBaseUrl | string | false | base URL of keyserver |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
`keyserverBaseUrl` defaults to `https://keys.openpgp.org/`.
|
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
A public key object.
|
|
|
|
|
|
|
|
## keys.fetch.wkd(wkdId)
|
|
|
|
|
|
|
|
_(async)_ keys.fetch.wkd(wkdId)
|
|
|
|
|
|
|
|
Fetches a key using the WKD protocol.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ----- | ------ | --------- | -------------- |
|
|
|
|
| wkdId | string | true | WKD identifier |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
`wkdId` looks like an email address and is formatted as `username@domain.org`.
|
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
A public key object.
|
|
|
|
|
|
|
|
## keys.fetch.plaintext(keyPlaintext)
|
|
|
|
|
|
|
|
_(async)_ keys.fetch.plaintext(keyPlaintext)
|
|
|
|
|
|
|
|
Parses the `keyPlaintext`.
|
|
|
|
|
|
|
|
**Parameters**
|
|
|
|
|
2020-12-05 15:14:09 -07:00
|
|
|
| Name | Type | Mandatory | Description |
|
|
|
|
| ------------ | ------ | --------- | ----------------- |
|
|
|
|
| keyPlaintext | string | true | ASCII key content |
|
2020-11-18 13:51:39 -07:00
|
|
|
|
|
|
|
**Returns**
|
|
|
|
|
|
|
|
A public key object.
|