-
Notifications
You must be signed in to change notification settings - Fork 24
/
jsonld-signatures.d.ts
74 lines (74 loc) · 2.21 KB
/
jsonld-signatures.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
declare module 'jsonld-signatures' {
import type { JsonLdObj, RemoteDocument, Url } from 'jsonld/jsonld-spec'
type Proof = JsonLdObj
interface VerificationResult {
verified: boolean
error?: Error
purposeResult?: { verified: boolean; error?: Error }
}
type DocumentLoader = (url: Url) => Promise<RemoteDocument>
type ExpansionMap = (info: any) => any
interface Signer {
sign: ({ data }: { data: Uint8Array }) => Promise<Buffer>
}
function verify(
document: JsonLdObj,
options: {
suite: suites.LinkedDataProof | suites.LinkedDataProof[]
purpose: purposes.ProofPurpose
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}
): Promise<{ verified: boolean; error?: Error; results: unknown[] }>
function sign(
document: JsonLdObj,
options: {
suite: suites.LinkedDataProof | suites.LinkedDataProof[]
purpose: purposes.ProofPurpose
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}
): Promise<JsonLdObj>
export namespace purposes {
export class ProofPurpose {
term: string
date?: Date | string | number
maxTimestampDelta?: number
match(
proof: Proof,
options: {
document?: JsonLdObj
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}
): Promise<boolean>
}
export class AssertionProofPurpose extends ProofPurpose {}
}
export namespace suites {
abstract class LinkedDataProof {
type: string
constructor(options: { type: string })
abstract createProof(options: {
document: JsonLdObj
purpose?: purposes.ProofPurpose
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}): Promise<Proof>
abstract verifyProof(options: {
proof: Proof
document?: JsonLdObj
purpose?: purposes.ProofPurpose
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}): Promise<VerificationResult>
matchProof(options: {
proof: Proof
document?: JsonLdObj
purpose?: purposes.ProofPurpose
documentLoader?: DocumentLoader
expansionMap?: ExpansionMap
}): Promise<boolean>
}
}
}