@ajna-inc/vaults 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/VaultsApi.d.ts +363 -0
- package/build/VaultsApi.js +450 -248
- package/build/VaultsApi.js.map +1 -0
- package/build/VaultsEvents.d.ts +227 -0
- package/build/VaultsEvents.js +8 -0
- package/build/VaultsEvents.js.map +1 -0
- package/build/VaultsModule.d.ts +64 -0
- package/build/VaultsModule.js +43 -18
- package/build/VaultsModule.js.map +1 -0
- package/build/crypto/wasm/VaultCrypto.d.ts +19 -0
- package/build/crypto/wasm/VaultCrypto.js +29 -42
- package/build/crypto/wasm/VaultCrypto.js.map +1 -0
- package/build/errors/BadSuiteError.d.ts +8 -0
- package/build/errors/BadSuiteError.js +8 -25
- package/build/errors/BadSuiteError.js.map +1 -0
- package/build/errors/DecryptAeadError.d.ts +8 -0
- package/build/errors/DecryptAeadError.js +8 -25
- package/build/errors/DecryptAeadError.js.map +1 -0
- package/build/errors/DecryptKemError.d.ts +8 -0
- package/build/errors/DecryptKemError.js +8 -25
- package/build/errors/DecryptKemError.js.map +1 -0
- package/build/errors/PolicyError.d.ts +8 -0
- package/build/errors/PolicyError.js +8 -25
- package/build/errors/PolicyError.js.map +1 -0
- package/build/errors/VaultError.d.ts +52 -0
- package/build/errors/VaultError.js +19 -30
- package/build/errors/VaultError.js.map +1 -0
- package/build/errors/index.d.ts +5 -0
- package/build/errors/index.js +1 -0
- package/build/errors/index.js.map +1 -0
- package/build/handlers/CreateVaultHandler.d.ts +18 -0
- package/build/handlers/CreateVaultHandler.js +75 -0
- package/build/handlers/CreateVaultHandler.js.map +1 -0
- package/build/handlers/DeleteVaultHandler.d.ts +17 -0
- package/build/handlers/DeleteVaultHandler.js +48 -0
- package/build/handlers/DeleteVaultHandler.js.map +1 -0
- package/build/handlers/DenyAccessHandler.d.ts +15 -0
- package/build/handlers/DenyAccessHandler.js +39 -0
- package/build/handlers/DenyAccessHandler.js.map +1 -0
- package/build/handlers/DenyShareHandler.d.ts +17 -0
- package/build/handlers/DenyShareHandler.js +49 -0
- package/build/handlers/DenyShareHandler.js.map +1 -0
- package/build/handlers/GrantAccessHandler.d.ts +17 -0
- package/build/handlers/GrantAccessHandler.js +59 -0
- package/build/handlers/GrantAccessHandler.js.map +1 -0
- package/build/handlers/ProvideShareHandler.d.ts +17 -0
- package/build/handlers/ProvideShareHandler.js +77 -0
- package/build/handlers/ProvideShareHandler.js.map +1 -0
- package/build/handlers/RequestAccessHandler.d.ts +18 -0
- package/build/handlers/RequestAccessHandler.js +60 -0
- package/build/handlers/RequestAccessHandler.js.map +1 -0
- package/build/handlers/RequestShareHandler.d.ts +19 -0
- package/build/handlers/RequestShareHandler.js +70 -0
- package/build/handlers/RequestShareHandler.js.map +1 -0
- package/build/handlers/RequestStorageHandler.d.ts +53 -0
- package/build/handlers/RequestStorageHandler.js +158 -0
- package/build/handlers/RequestStorageHandler.js.map +1 -0
- package/build/handlers/RetrieveVaultHandler.d.ts +18 -0
- package/build/handlers/RetrieveVaultHandler.js +65 -0
- package/build/handlers/RetrieveVaultHandler.js.map +1 -0
- package/build/handlers/StoreVaultHandler.d.ts +17 -0
- package/build/handlers/StoreVaultHandler.js +77 -0
- package/build/handlers/StoreVaultHandler.js.map +1 -0
- package/build/handlers/UpdateVaultHandler.d.ts +18 -0
- package/build/handlers/UpdateVaultHandler.js +77 -0
- package/build/handlers/UpdateVaultHandler.js.map +1 -0
- package/build/handlers/VaultCreatedAckHandler.d.ts +15 -0
- package/build/handlers/VaultCreatedAckHandler.js +39 -0
- package/build/handlers/VaultCreatedAckHandler.js.map +1 -0
- package/build/handlers/VaultDataHandler.d.ts +19 -0
- package/build/handlers/VaultDataHandler.js +68 -0
- package/build/handlers/VaultDataHandler.js.map +1 -0
- package/build/handlers/VaultProblemReportHandler.d.ts +17 -0
- package/build/handlers/VaultProblemReportHandler.js +40 -0
- package/build/handlers/VaultProblemReportHandler.js.map +1 -0
- package/build/handlers/VaultReferenceHandler.d.ts +33 -0
- package/build/handlers/VaultReferenceHandler.js +169 -0
- package/build/handlers/VaultReferenceHandler.js.map +1 -0
- package/build/handlers/VaultStoredAckHandler.d.ts +15 -0
- package/build/handlers/VaultStoredAckHandler.js +38 -0
- package/build/handlers/VaultStoredAckHandler.js.map +1 -0
- package/build/handlers/index.d.ts +17 -0
- package/build/handlers/index.js +44 -0
- package/build/handlers/index.js.map +1 -0
- package/build/index.d.ts +42 -0
- package/build/index.js +13 -1
- package/build/index.js.map +1 -0
- package/build/messages/CreateVaultMessage.d.ts +39 -0
- package/build/messages/CreateVaultMessage.js +65 -115
- package/build/messages/CreateVaultMessage.js.map +1 -0
- package/build/messages/DeleteVaultMessage.d.ts +22 -0
- package/build/messages/DeleteVaultMessage.js +51 -103
- package/build/messages/DeleteVaultMessage.js.map +1 -0
- package/build/messages/DenyAccessMessage.d.ts +22 -0
- package/build/messages/DenyAccessMessage.js +50 -103
- package/build/messages/DenyAccessMessage.js.map +1 -0
- package/build/messages/DenyShareMessage.d.ts +24 -0
- package/build/messages/DenyShareMessage.js +56 -109
- package/build/messages/DenyShareMessage.js.map +1 -0
- package/build/messages/GrantAccessMessage.d.ts +32 -0
- package/build/messages/GrantAccessMessage.js +63 -115
- package/build/messages/GrantAccessMessage.js.map +1 -0
- package/build/messages/ProvideShareMessage.d.ts +26 -0
- package/build/messages/ProvideShareMessage.js +62 -115
- package/build/messages/ProvideShareMessage.js.map +1 -0
- package/build/messages/ProvideStorageMessage.d.ts +90 -0
- package/build/messages/ProvideStorageMessage.js +193 -0
- package/build/messages/ProvideStorageMessage.js.map +1 -0
- package/build/messages/RequestAccessMessage.d.ts +30 -0
- package/build/messages/RequestAccessMessage.js +57 -109
- package/build/messages/RequestAccessMessage.js.map +1 -0
- package/build/messages/RequestShareMessage.d.ts +24 -0
- package/build/messages/RequestShareMessage.js +56 -109
- package/build/messages/RequestShareMessage.js.map +1 -0
- package/build/messages/RequestStorageMessage.d.ts +50 -0
- package/build/messages/RequestStorageMessage.js +98 -0
- package/build/messages/RequestStorageMessage.js.map +1 -0
- package/build/messages/RetrieveVaultMessage.d.ts +20 -0
- package/build/messages/RetrieveVaultMessage.js +44 -97
- package/build/messages/RetrieveVaultMessage.js.map +1 -0
- package/build/messages/StoreVaultMessage.d.ts +23 -0
- package/build/messages/StoreVaultMessage.js +51 -103
- package/build/messages/StoreVaultMessage.js.map +1 -0
- package/build/messages/UpdateVaultMessage.d.ts +25 -0
- package/build/messages/UpdateVaultMessage.js +58 -109
- package/build/messages/UpdateVaultMessage.js.map +1 -0
- package/build/messages/VaultCreatedAckMessage.d.ts +20 -0
- package/build/messages/VaultCreatedAckMessage.js +44 -97
- package/build/messages/VaultCreatedAckMessage.js.map +1 -0
- package/build/messages/VaultDataMessage.d.ts +34 -0
- package/build/messages/VaultDataMessage.js +59 -110
- package/build/messages/VaultDataMessage.js.map +1 -0
- package/build/messages/VaultProblemReportMessage.d.ts +35 -0
- package/build/messages/VaultProblemReportMessage.js +56 -102
- package/build/messages/VaultProblemReportMessage.js.map +1 -0
- package/build/messages/VaultReferenceMessage.d.ts +66 -0
- package/build/messages/VaultReferenceMessage.js +138 -0
- package/build/messages/VaultReferenceMessage.js.map +1 -0
- package/build/messages/VaultStoredAckMessage.d.ts +33 -0
- package/build/messages/VaultStoredAckMessage.js +51 -104
- package/build/messages/VaultStoredAckMessage.js.map +1 -0
- package/build/messages/index.d.ts +18 -0
- package/build/messages/index.js +6 -1
- package/build/messages/index.js.map +1 -0
- package/build/models/ThresholdSession.d.ts +37 -0
- package/build/models/ThresholdSession.js +1 -0
- package/build/models/ThresholdSession.js.map +1 -0
- package/build/models/VaultDocument.d.ts +22 -0
- package/build/models/VaultDocument.js +1 -0
- package/build/models/VaultDocument.js.map +1 -0
- package/build/models/VaultHeader.d.ts +92 -0
- package/build/models/VaultHeader.js +4 -6
- package/build/models/VaultHeader.js.map +1 -0
- package/build/models/VaultPolicy.d.ts +24 -0
- package/build/models/VaultPolicy.js +1 -0
- package/build/models/VaultPolicy.js.map +1 -0
- package/build/models/index.d.ts +4 -0
- package/build/models/index.js +1 -0
- package/build/models/index.js.map +1 -0
- package/build/repository/KemKeypairRecord.d.ts +37 -0
- package/build/repository/KemKeypairRecord.js +35 -0
- package/build/repository/KemKeypairRecord.js.map +1 -0
- package/build/repository/KemKeypairRepository.d.ts +18 -0
- package/build/repository/KemKeypairRepository.js +50 -0
- package/build/repository/KemKeypairRepository.js.map +1 -0
- package/build/repository/ThresholdSessionRecord.d.ts +93 -0
- package/build/repository/ThresholdSessionRecord.js +58 -92
- package/build/repository/ThresholdSessionRecord.js.map +1 -0
- package/build/repository/ThresholdSessionRepository.d.ts +35 -0
- package/build/repository/ThresholdSessionRepository.js +72 -208
- package/build/repository/ThresholdSessionRepository.js.map +1 -0
- package/build/repository/VaultRecord.d.ts +105 -0
- package/build/repository/VaultRecord.js +94 -115
- package/build/repository/VaultRecord.js.map +1 -0
- package/build/repository/VaultRepository.d.ts +35 -0
- package/build/repository/VaultRepository.js +66 -192
- package/build/repository/VaultRepository.js.map +1 -0
- package/build/repository/index.d.ts +9 -0
- package/build/repository/index.js +7 -1
- package/build/repository/index.js.map +1 -0
- package/build/services/HPKEService.d.ts +67 -0
- package/build/services/HPKEService.js +106 -0
- package/build/services/HPKEService.js.map +1 -0
- package/build/services/KemKeyExchangeService.d.ts +207 -0
- package/build/services/KemKeyExchangeService.js +323 -0
- package/build/services/KemKeyExchangeService.js.map +1 -0
- package/build/services/VaultEncryptionService.d.ts +120 -0
- package/build/services/VaultEncryptionService.js +469 -588
- package/build/services/VaultEncryptionService.js.map +1 -0
- package/build/services/VaultService.d.ts +127 -0
- package/build/services/VaultService.js +224 -376
- package/build/services/VaultService.js.map +1 -0
- package/build/services/VaultSigningService.d.ts +216 -0
- package/build/services/VaultSigningService.js +498 -0
- package/build/services/VaultSigningService.js.map +1 -0
- package/build/services/index.d.ts +9 -0
- package/build/services/index.js +10 -1
- package/build/services/index.js.map +1 -0
- package/build/storage/VaultStorageConfig.d.ts +97 -0
- package/build/storage/VaultStorageConfig.js +22 -0
- package/build/storage/VaultStorageConfig.js.map +1 -0
- package/build/storage/VaultStorageService.d.ts +118 -0
- package/build/storage/VaultStorageService.js +381 -0
- package/build/storage/VaultStorageService.js.map +1 -0
- package/build/storage/index.d.ts +2 -0
- package/build/storage/index.js +21 -0
- package/build/storage/index.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import type { VaultRecord } from './repository/VaultRecord';
|
|
2
|
+
import type { KemKeypairWithKid } from './services/KemKeyExchangeService';
|
|
3
|
+
import type { VaultInfo, CreateVaultOptions, OpenVaultOptions, UpdateVaultOptions } from './services/VaultService';
|
|
4
|
+
import type { CreateSigningVaultOptions, SigningVaultResult, OpenSigningVaultResult, ReturnSignedDocumentOptions } from './services/VaultSigningService';
|
|
5
|
+
import type { Logger } from '@credo-ts/core';
|
|
6
|
+
import type { S3StorageConfig } from './storage/VaultStorageConfig';
|
|
7
|
+
import { AgentContext, MessageHandlerRegistry, EventEmitter } from '@credo-ts/core';
|
|
8
|
+
import { VaultService } from './services/VaultService';
|
|
9
|
+
import { KemKeyExchangeService } from './services/KemKeyExchangeService';
|
|
10
|
+
import { VaultSigningService } from './services/VaultSigningService';
|
|
11
|
+
import { VaultStorageService } from './storage/VaultStorageService';
|
|
12
|
+
import { VaultRepository } from './repository/VaultRepository';
|
|
13
|
+
import { ThresholdSessionRepository } from './repository/ThresholdSessionRepository';
|
|
14
|
+
import { VaultDataMessage } from './messages';
|
|
15
|
+
/**
|
|
16
|
+
* Vaults API
|
|
17
|
+
*
|
|
18
|
+
* Public API for vault operations.
|
|
19
|
+
* Provides a clean interface for creating, opening, and managing encrypted vaults.
|
|
20
|
+
*
|
|
21
|
+
* All encryption and decryption happens client-side.
|
|
22
|
+
*/
|
|
23
|
+
export declare class VaultsApi {
|
|
24
|
+
private vaultService;
|
|
25
|
+
private agentContext;
|
|
26
|
+
private logger;
|
|
27
|
+
private kemKeyExchangeService;
|
|
28
|
+
private vaultSigningService;
|
|
29
|
+
private storageService;
|
|
30
|
+
constructor(agentContext: AgentContext, messageHandlerRegistry: MessageHandlerRegistry, eventEmitter: EventEmitter, logger: Logger, vaultService: VaultService, kemKeyExchangeService: KemKeyExchangeService, vaultSigningService: VaultSigningService, storageService: VaultStorageService, vaultRepository: VaultRepository, thresholdSessionRepository: ThresholdSessionRepository);
|
|
31
|
+
private registerMessageHandlers;
|
|
32
|
+
/**
|
|
33
|
+
* Configure external storage (S3) for large file support
|
|
34
|
+
*
|
|
35
|
+
* @param config - S3 storage configuration
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* await agent.modules.vaults.configureStorage({
|
|
40
|
+
* type: 's3',
|
|
41
|
+
* bucket: 'my-vault-bucket',
|
|
42
|
+
* region: 'us-east-1',
|
|
43
|
+
* accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
44
|
+
* secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
configureStorage(config: S3StorageConfig): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if external storage is configured
|
|
51
|
+
*/
|
|
52
|
+
isStorageConfigured(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Get the storage service for direct operations
|
|
55
|
+
*/
|
|
56
|
+
getStorageService(): VaultStorageService;
|
|
57
|
+
/**
|
|
58
|
+
* Create a new encrypted vault
|
|
59
|
+
*
|
|
60
|
+
* @param data - Raw data to encrypt (e.g., PDF bytes)
|
|
61
|
+
* @param options - Creation options including passphrase
|
|
62
|
+
* @returns Created vault identifiers
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const pdfBytes = await fs.readFile('contract.pdf')
|
|
67
|
+
* const { vaultId } = await agent.modules.vaults.create(pdfBytes, {
|
|
68
|
+
* passphrase: 'my-secure-passphrase',
|
|
69
|
+
* metadata: { description: 'Employment Contract' }
|
|
70
|
+
* })
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
create(data: Uint8Array, options: CreateVaultOptions): Promise<{
|
|
74
|
+
vaultId: string;
|
|
75
|
+
docId: string;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Open (decrypt) a vault
|
|
79
|
+
*
|
|
80
|
+
* @param vaultId - Vault identifier
|
|
81
|
+
* @param options - Open options including passphrase
|
|
82
|
+
* @returns Decrypted data
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const decrypted = await agent.modules.vaults.open(vaultId, {
|
|
87
|
+
* passphrase: 'my-secure-passphrase'
|
|
88
|
+
* })
|
|
89
|
+
* await fs.writeFile('contract-decrypted.pdf', decrypted)
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
open(vaultId: string, options: OpenVaultOptions): Promise<Uint8Array>;
|
|
93
|
+
/**
|
|
94
|
+
* Update vault with new data
|
|
95
|
+
*
|
|
96
|
+
* @param vaultId - Vault identifier
|
|
97
|
+
* @param data - New data to encrypt
|
|
98
|
+
* @param options - Update options including passphrase
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const newPdfBytes = await fs.readFile('contract-v2.pdf')
|
|
103
|
+
* await agent.modules.vaults.update(vaultId, newPdfBytes, {
|
|
104
|
+
* passphrase: 'my-secure-passphrase'
|
|
105
|
+
* })
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
update(vaultId: string, data: Uint8Array, options: UpdateVaultOptions): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Delete a vault
|
|
111
|
+
*
|
|
112
|
+
* @param vaultId - Vault identifier
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* await agent.modules.vaults.delete(vaultId)
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
delete(vaultId: string): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* List all vaults
|
|
122
|
+
*
|
|
123
|
+
* @returns Array of vault records
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const vaults = await agent.modules.vaults.list()
|
|
128
|
+
* console.log(`Total vaults: ${vaults.length}`)
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
list(): Promise<VaultRecord[]>;
|
|
132
|
+
/**
|
|
133
|
+
* Get vault info (metadata without decrypting)
|
|
134
|
+
*
|
|
135
|
+
* @param vaultId - Vault identifier
|
|
136
|
+
* @returns Vault information
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* const info = await agent.modules.vaults.getInfo(vaultId)
|
|
141
|
+
* console.log(`Vault: ${info.vaultId}, Epoch: ${info.header.epoch}`)
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
getInfo(vaultId: string): Promise<VaultInfo>;
|
|
145
|
+
/**
|
|
146
|
+
* Check if a vault exists
|
|
147
|
+
*
|
|
148
|
+
* @param vaultId - Vault identifier
|
|
149
|
+
* @returns True if vault exists
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* if (await agent.modules.vaults.exists(vaultId)) {
|
|
154
|
+
* console.log('Vault found!')
|
|
155
|
+
* }
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
exists(vaultId: string): Promise<boolean>;
|
|
159
|
+
/**
|
|
160
|
+
* Get the raw vault record (for advanced operations)
|
|
161
|
+
*
|
|
162
|
+
* @param vaultId - Vault identifier
|
|
163
|
+
* @returns Vault record or null
|
|
164
|
+
*/
|
|
165
|
+
getRecord(vaultId: string): Promise<VaultRecord | null>;
|
|
166
|
+
/**
|
|
167
|
+
* Generate a new ML-KEM keypair for vault sharing
|
|
168
|
+
*
|
|
169
|
+
* @returns Keypair with key ID
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const keypair = agent.modules.vaults.generateKemKeypair()
|
|
174
|
+
* console.log(`Generated KEM key: ${keypair.kid}`)
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
generateKemKeypair(): KemKeypairWithKid;
|
|
178
|
+
/**
|
|
179
|
+
* Store peer's ML-KEM public key for vault encryption
|
|
180
|
+
*
|
|
181
|
+
* @param connectionId - Connection to associate the key with
|
|
182
|
+
* @param kid - Key identifier
|
|
183
|
+
* @param publicKey - ML-KEM public key
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* await agent.modules.vaults.storePeerKemKey(connectionId, {
|
|
188
|
+
* kid: 'peer-key-id',
|
|
189
|
+
* publicKey: peerPublicKey
|
|
190
|
+
* })
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
storePeerKemKey(connectionId: string, keyInfo: {
|
|
194
|
+
kid: string;
|
|
195
|
+
publicKey: Uint8Array;
|
|
196
|
+
}): Promise<void>;
|
|
197
|
+
/**
|
|
198
|
+
* Get peer's ML-KEM public key
|
|
199
|
+
*
|
|
200
|
+
* @param connectionId - Connection ID
|
|
201
|
+
* @returns Peer's key info or null
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* const peerKey = await agent.modules.vaults.getPeerKemKey(connectionId)
|
|
206
|
+
* if (peerKey) {
|
|
207
|
+
* // Can now create vault encrypted to peer
|
|
208
|
+
* }
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
getPeerKemKey(connectionId: string): Promise<import("./services/KemKeyExchangeService").KemPublicKeyInfo | null>;
|
|
212
|
+
/**
|
|
213
|
+
* Check if peer has a KEM key stored
|
|
214
|
+
*
|
|
215
|
+
* @param connectionId - Connection ID
|
|
216
|
+
* @returns True if peer has KEM key
|
|
217
|
+
*/
|
|
218
|
+
hasPeerKemKey(connectionId: string): Promise<boolean>;
|
|
219
|
+
/**
|
|
220
|
+
* Store a local KEM keypair for a connection
|
|
221
|
+
*
|
|
222
|
+
* Call this after generateKemKeypair() to persist the keypair locally
|
|
223
|
+
* for later vault decryption.
|
|
224
|
+
*
|
|
225
|
+
* @param connectionId - Connection to associate the keypair with
|
|
226
|
+
* @param keypair - Full keypair including secret key
|
|
227
|
+
*/
|
|
228
|
+
storeLocalKeypair(connectionId: string, keypair: KemKeypairWithKid): Promise<void>;
|
|
229
|
+
/**
|
|
230
|
+
* Get the local KEM keypair for a connection
|
|
231
|
+
*
|
|
232
|
+
* @param connectionId - Connection ID
|
|
233
|
+
* @returns Full keypair or null
|
|
234
|
+
*/
|
|
235
|
+
getLocalKeypair(connectionId: string): Promise<KemKeypairWithKid | null>;
|
|
236
|
+
/**
|
|
237
|
+
* Check if a local keypair exists for a connection
|
|
238
|
+
*
|
|
239
|
+
* @param connectionId - Connection ID
|
|
240
|
+
* @returns True if local keypair exists
|
|
241
|
+
*/
|
|
242
|
+
hasLocalKeypair(connectionId: string): Promise<boolean>;
|
|
243
|
+
/**
|
|
244
|
+
* Find a local keypair by key identifier (kid)
|
|
245
|
+
*
|
|
246
|
+
* @param kid - Key identifier to search for
|
|
247
|
+
* @returns Keypair and associated connectionId, or null
|
|
248
|
+
*/
|
|
249
|
+
findKeypairByKid(kid: string): Promise<{
|
|
250
|
+
keypair: KemKeypairWithKid;
|
|
251
|
+
connectionId: string;
|
|
252
|
+
} | null>;
|
|
253
|
+
/**
|
|
254
|
+
* Delete the local keypair for a connection
|
|
255
|
+
*
|
|
256
|
+
* @param connectionId - Connection ID
|
|
257
|
+
*/
|
|
258
|
+
deleteLocalKeypair(connectionId: string): Promise<void>;
|
|
259
|
+
/**
|
|
260
|
+
* Create a signing vault encrypted to a signer's ML-KEM key
|
|
261
|
+
*
|
|
262
|
+
* Use this to send a document to someone for signing.
|
|
263
|
+
* The document is encrypted so only the intended signer can decrypt it.
|
|
264
|
+
*
|
|
265
|
+
* @param options - Creation options
|
|
266
|
+
* @returns Created vault identifiers
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```typescript
|
|
270
|
+
* // Create vault for Bob to sign
|
|
271
|
+
* const { vaultId } = await agent.modules.vaults.createSigningVault({
|
|
272
|
+
* document: pdfBytes,
|
|
273
|
+
* signerConnectionId: bobConnectionId,
|
|
274
|
+
* documentType: 'pdf',
|
|
275
|
+
* metadata: { description: 'Contract for signing' }
|
|
276
|
+
* })
|
|
277
|
+
*
|
|
278
|
+
* // Share with Bob
|
|
279
|
+
* await agent.modules.vaults.shareSigningVault(vaultId, bobConnectionId)
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
createSigningVault(options: CreateSigningVaultOptions): Promise<SigningVaultResult>;
|
|
283
|
+
/**
|
|
284
|
+
* Open (decrypt) a vault received for signing
|
|
285
|
+
*
|
|
286
|
+
* @param vaultData - Received vault data (message or record)
|
|
287
|
+
* @param secretKey - Your ML-KEM secret key
|
|
288
|
+
* @param kid - Your key identifier
|
|
289
|
+
* @returns Decrypted document and metadata
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* // Decrypt vault received for signing
|
|
294
|
+
* const { document, header } = await agent.modules.vaults.openSigningVault(
|
|
295
|
+
* vaultRecord,
|
|
296
|
+
* myKemKeypair.secretKey,
|
|
297
|
+
* myKemKeypair.kid
|
|
298
|
+
* )
|
|
299
|
+
*
|
|
300
|
+
* // Sign the document
|
|
301
|
+
* const signedPdf = await signPdf(document)
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
openSigningVault(vaultData: VaultDataMessage | VaultRecord, secretKey: Uint8Array, kid: string): Promise<OpenSigningVaultResult>;
|
|
305
|
+
/**
|
|
306
|
+
* Share a signing vault with a connection
|
|
307
|
+
*
|
|
308
|
+
* Sends the encrypted vault to the specified connection via DIDComm
|
|
309
|
+
*
|
|
310
|
+
* @param vaultId - Vault to share
|
|
311
|
+
* @param connectionId - Connection to send to
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```typescript
|
|
315
|
+
* await agent.modules.vaults.shareSigningVault(vaultId, bobConnectionId)
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
shareSigningVault(vaultId: string, connectionId: string): Promise<void>;
|
|
319
|
+
/**
|
|
320
|
+
* Return a signed document to the vault owner
|
|
321
|
+
*
|
|
322
|
+
* Creates a new vault with the signed document encrypted to the owner's key
|
|
323
|
+
*
|
|
324
|
+
* @param options - Return options
|
|
325
|
+
* @returns New vault containing the signed document
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* await agent.modules.vaults.returnSignedDocument({
|
|
330
|
+
* signedDocument: signedPdfBytes,
|
|
331
|
+
* originalVaultId: receivedVaultId,
|
|
332
|
+
* ownerConnectionId: aliceConnectionId,
|
|
333
|
+
* documentType: 'pdf',
|
|
334
|
+
* metadata: { signatureType: 'pades-b-lta' }
|
|
335
|
+
* })
|
|
336
|
+
* ```
|
|
337
|
+
*/
|
|
338
|
+
returnSignedDocument(options: ReturnSignedDocumentOptions): Promise<SigningVaultResult>;
|
|
339
|
+
/**
|
|
340
|
+
* Resolve the decryption key for a vault
|
|
341
|
+
*
|
|
342
|
+
* Automatically finds the correct local KEM keypair that can decrypt
|
|
343
|
+
* the specified vault by matching recipient kids in the vault header.
|
|
344
|
+
*
|
|
345
|
+
* @param vaultId - Vault to find decryption key for
|
|
346
|
+
* @returns Secret key, kid, and connectionId; or null if no matching key found
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* ```typescript
|
|
350
|
+
* const key = await agent.modules.vaults.resolveVaultDecryptionKey(vaultId)
|
|
351
|
+
* if (key) {
|
|
352
|
+
* const { document } = await agent.modules.vaults.openSigningVault(
|
|
353
|
+
* vaultRecord, key.secretKey, key.kid
|
|
354
|
+
* )
|
|
355
|
+
* }
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
358
|
+
resolveVaultDecryptionKey(vaultId: string): Promise<{
|
|
359
|
+
secretKey: Uint8Array;
|
|
360
|
+
kid: string;
|
|
361
|
+
connectionId: string;
|
|
362
|
+
} | null>;
|
|
363
|
+
}
|