@massalabs/gossip-sdk 0.0.2-dev.20260128094509 → 0.0.2-dev.20260128160824

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.
Files changed (148) hide show
  1. package/dist/api/messageProtocol/index.d.ts +19 -0
  2. package/dist/api/messageProtocol/index.js +26 -0
  3. package/dist/api/messageProtocol/mock.d.ts +12 -0
  4. package/{src/api/messageProtocol/mock.ts → dist/api/messageProtocol/mock.js} +2 -3
  5. package/dist/api/messageProtocol/rest.d.ts +22 -0
  6. package/dist/api/messageProtocol/rest.js +161 -0
  7. package/dist/api/messageProtocol/types.d.ts +61 -0
  8. package/dist/api/messageProtocol/types.js +6 -0
  9. package/dist/assets/generated/wasm/README.md +281 -0
  10. package/dist/assets/generated/wasm/gossip_wasm.d.ts +638 -0
  11. package/dist/assets/generated/wasm/gossip_wasm.js +1557 -0
  12. package/dist/assets/generated/wasm/gossip_wasm_bg.wasm +0 -0
  13. package/dist/assets/generated/wasm/gossip_wasm_bg.wasm.d.ts +164 -0
  14. package/dist/assets/generated/wasm/package.json +15 -0
  15. package/dist/assets/generated/wasm-node/README.md +281 -0
  16. package/dist/assets/generated/wasm-node/gossip_wasm.d.ts +443 -0
  17. package/dist/assets/generated/wasm-node/gossip_wasm.js +1488 -0
  18. package/dist/assets/generated/wasm-node/gossip_wasm_bg.wasm +0 -0
  19. package/dist/assets/generated/wasm-node/gossip_wasm_bg.wasm.d.ts +164 -0
  20. package/dist/assets/generated/wasm-node/package.json +11 -0
  21. package/dist/config/protocol.d.ts +36 -0
  22. package/dist/config/protocol.js +77 -0
  23. package/dist/config/sdk.d.ts +82 -0
  24. package/dist/config/sdk.js +55 -0
  25. package/{src/contacts.ts → dist/contacts.d.ts} +11 -95
  26. package/dist/contacts.js +166 -0
  27. package/dist/core/SdkEventEmitter.d.ts +36 -0
  28. package/dist/core/SdkEventEmitter.js +59 -0
  29. package/dist/core/SdkPolling.d.ts +35 -0
  30. package/dist/core/SdkPolling.js +100 -0
  31. package/{src/core/index.ts → dist/core/index.d.ts} +0 -2
  32. package/dist/core/index.js +5 -0
  33. package/dist/crypto/bip39.d.ts +34 -0
  34. package/dist/crypto/bip39.js +62 -0
  35. package/dist/crypto/encryption.d.ts +37 -0
  36. package/dist/crypto/encryption.js +46 -0
  37. package/dist/db.d.ts +190 -0
  38. package/dist/db.js +311 -0
  39. package/dist/gossipSdk.d.ts +274 -0
  40. package/dist/gossipSdk.js +690 -0
  41. package/dist/index.d.ts +59 -0
  42. package/dist/index.js +61 -0
  43. package/dist/services/announcement.d.ts +43 -0
  44. package/dist/services/announcement.js +491 -0
  45. package/dist/services/auth.d.ts +37 -0
  46. package/dist/services/auth.js +76 -0
  47. package/dist/services/discussion.d.ts +63 -0
  48. package/dist/services/discussion.js +297 -0
  49. package/dist/services/message.d.ts +74 -0
  50. package/dist/services/message.js +826 -0
  51. package/dist/services/refresh.d.ts +41 -0
  52. package/dist/services/refresh.js +205 -0
  53. package/{src/sw.ts → dist/sw.d.ts} +1 -8
  54. package/dist/sw.js +10 -0
  55. package/dist/types/events.d.ts +80 -0
  56. package/dist/types/events.js +7 -0
  57. package/dist/types.d.ts +32 -0
  58. package/dist/types.js +7 -0
  59. package/dist/utils/base64.d.ts +10 -0
  60. package/dist/utils/base64.js +30 -0
  61. package/dist/utils/contacts.d.ts +42 -0
  62. package/dist/utils/contacts.js +113 -0
  63. package/dist/utils/discussions.d.ts +24 -0
  64. package/dist/utils/discussions.js +38 -0
  65. package/dist/utils/logs.d.ts +19 -0
  66. package/dist/utils/logs.js +89 -0
  67. package/dist/utils/messageSerialization.d.ts +64 -0
  68. package/dist/utils/messageSerialization.js +184 -0
  69. package/dist/utils/queue.d.ts +50 -0
  70. package/dist/utils/queue.js +110 -0
  71. package/dist/utils/type.d.ts +10 -0
  72. package/dist/utils/type.js +4 -0
  73. package/dist/utils/userId.d.ts +40 -0
  74. package/dist/utils/userId.js +90 -0
  75. package/dist/utils/validation.d.ts +50 -0
  76. package/dist/utils/validation.js +112 -0
  77. package/dist/utils.d.ts +30 -0
  78. package/{src/utils.ts → dist/utils.js} +9 -19
  79. package/dist/wasm/encryption.d.ts +56 -0
  80. package/{src/wasm/encryption.ts → dist/wasm/encryption.js} +22 -51
  81. package/dist/wasm/index.d.ts +10 -0
  82. package/{src/wasm/index.ts → dist/wasm/index.js} +1 -8
  83. package/dist/wasm/loader.d.ts +22 -0
  84. package/dist/wasm/loader.js +78 -0
  85. package/dist/wasm/session.d.ts +85 -0
  86. package/dist/wasm/session.js +226 -0
  87. package/dist/wasm/userKeys.d.ts +17 -0
  88. package/{src/wasm/userKeys.ts → dist/wasm/userKeys.js} +6 -13
  89. package/package.json +15 -2
  90. package/src/api/messageProtocol/index.ts +0 -53
  91. package/src/api/messageProtocol/rest.ts +0 -209
  92. package/src/api/messageProtocol/types.ts +0 -70
  93. package/src/config/protocol.ts +0 -97
  94. package/src/config/sdk.ts +0 -131
  95. package/src/core/SdkEventEmitter.ts +0 -91
  96. package/src/core/SdkPolling.ts +0 -134
  97. package/src/crypto/bip39.ts +0 -84
  98. package/src/crypto/encryption.ts +0 -77
  99. package/src/db.ts +0 -465
  100. package/src/gossipSdk.ts +0 -994
  101. package/src/index.ts +0 -211
  102. package/src/services/announcement.ts +0 -653
  103. package/src/services/auth.ts +0 -95
  104. package/src/services/discussion.ts +0 -380
  105. package/src/services/message.ts +0 -1055
  106. package/src/services/refresh.ts +0 -234
  107. package/src/types/events.ts +0 -108
  108. package/src/types.ts +0 -70
  109. package/src/utils/base64.ts +0 -39
  110. package/src/utils/contacts.ts +0 -161
  111. package/src/utils/discussions.ts +0 -55
  112. package/src/utils/logs.ts +0 -86
  113. package/src/utils/messageSerialization.ts +0 -257
  114. package/src/utils/queue.ts +0 -106
  115. package/src/utils/type.ts +0 -7
  116. package/src/utils/userId.ts +0 -114
  117. package/src/utils/validation.ts +0 -144
  118. package/src/wasm/loader.ts +0 -123
  119. package/src/wasm/session.ts +0 -276
  120. package/test/config/protocol.spec.ts +0 -31
  121. package/test/config/sdk.spec.ts +0 -163
  122. package/test/db/helpers.spec.ts +0 -142
  123. package/test/db/operations.spec.ts +0 -128
  124. package/test/db/states.spec.ts +0 -535
  125. package/test/integration/discussion-flow.spec.ts +0 -422
  126. package/test/integration/messaging-flow.spec.ts +0 -708
  127. package/test/integration/sdk-lifecycle.spec.ts +0 -325
  128. package/test/mocks/index.ts +0 -9
  129. package/test/mocks/mockMessageProtocol.ts +0 -100
  130. package/test/services/auth.spec.ts +0 -311
  131. package/test/services/discussion.spec.ts +0 -279
  132. package/test/services/message-deduplication.spec.ts +0 -299
  133. package/test/services/message-startup.spec.ts +0 -331
  134. package/test/services/message.spec.ts +0 -817
  135. package/test/services/refresh.spec.ts +0 -199
  136. package/test/services/session-status.spec.ts +0 -349
  137. package/test/session/wasm.spec.ts +0 -227
  138. package/test/setup.ts +0 -52
  139. package/test/utils/contacts.spec.ts +0 -156
  140. package/test/utils/discussions.spec.ts +0 -66
  141. package/test/utils/queue.spec.ts +0 -52
  142. package/test/utils/serialization.spec.ts +0 -120
  143. package/test/utils/userId.spec.ts +0 -120
  144. package/test/utils/validation.spec.ts +0 -223
  145. package/test/utils.ts +0 -212
  146. package/tsconfig.json +0 -26
  147. package/tsconfig.tsbuildinfo +0 -1
  148. package/vitest.config.ts +0 -28
@@ -0,0 +1,638 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export function start(): void;
4
+ /**
5
+ * Decrypts data using AES-256-SIV authenticated encryption.
6
+ *
7
+ * # Parameters
8
+ *
9
+ * - `key`: The encryption key (64 bytes, must match encryption key)
10
+ * - `nonce`: The nonce (16 bytes, must match encryption nonce)
11
+ * - `ciphertext`: The encrypted data with authentication tag
12
+ * - `aad`: Additional authenticated data (must match encryption AAD)
13
+ *
14
+ * # Returns
15
+ *
16
+ * The decrypted plaintext, or `null` if authentication fails.
17
+ *
18
+ * # Security Notes
19
+ *
20
+ * - Returns `null` if:
21
+ * - The ciphertext has been tampered with
22
+ * - The wrong key or nonce is used
23
+ * - The AAD doesn't match
24
+ * - Never ignore a decryption failure; it indicates tampering or corruption
25
+ *
26
+ * # Example
27
+ *
28
+ * ```javascript
29
+ * const plaintext = aead_decrypt(key, nonce, ciphertext, aad);
30
+ * if (plaintext) {
31
+ * console.log("Decrypted:", new TextDecoder().decode(plaintext));
32
+ * } else {
33
+ * console.error("Decryption failed - data may be corrupted or tampered");
34
+ * }
35
+ * ```
36
+ */
37
+ export function aead_decrypt(
38
+ key: EncryptionKey,
39
+ nonce: Nonce,
40
+ ciphertext: Uint8Array,
41
+ aad: Uint8Array
42
+ ): Uint8Array | undefined;
43
+ /**
44
+ * Encrypts data using AES-256-SIV authenticated encryption.
45
+ *
46
+ * # Parameters
47
+ *
48
+ * - `key`: The encryption key (64 bytes)
49
+ * - `nonce`: The nonce (16 bytes, should be unique per encryption)
50
+ * - `plaintext`: The data to encrypt
51
+ * - `aad`: Additional authenticated data (not encrypted, but authenticated)
52
+ *
53
+ * # Returns
54
+ *
55
+ * The ciphertext with authentication tag appended.
56
+ *
57
+ * # Security Notes
58
+ *
59
+ * - The nonce should be unique for each encryption operation
60
+ * - AES-SIV is nonce-misuse resistant: reusing nonces only leaks if plaintexts are identical
61
+ * - AAD is authenticated but not encrypted; it must be transmitted separately
62
+ * - The same AAD must be provided during decryption
63
+ *
64
+ * # Example
65
+ *
66
+ * ```javascript
67
+ * const key = EncryptionKey.generate();
68
+ * const nonce = Nonce.generate();
69
+ * const plaintext = new TextEncoder().encode("Secret message");
70
+ * const aad = new TextEncoder().encode("context info");
71
+ *
72
+ * const ciphertext = aead_encrypt(key, nonce, plaintext, aad);
73
+ * ```
74
+ */
75
+ export function aead_encrypt(
76
+ key: EncryptionKey,
77
+ nonce: Nonce,
78
+ plaintext: Uint8Array,
79
+ aad: Uint8Array
80
+ ): Uint8Array;
81
+ /**
82
+ * Generates user keys from a passphrase using password-based key derivation.
83
+ */
84
+ export function generate_user_keys(passphrase: string): UserKeys;
85
+ /**
86
+ * Session status indicating the state of a peer session.
87
+ */
88
+ export enum SessionStatus {
89
+ Active = 0,
90
+ UnknownPeer = 1,
91
+ NoSession = 2,
92
+ PeerRequested = 3,
93
+ SelfRequested = 4,
94
+ Killed = 5,
95
+ Saturated = 6,
96
+ }
97
+ /**
98
+ * Result from feeding an incoming announcement.
99
+ */
100
+ export class AnnouncementResult {
101
+ private constructor();
102
+ free(): void;
103
+ [Symbol.dispose](): void;
104
+ /**
105
+ * Gets the announcer's public keys.
106
+ */
107
+ readonly announcer_public_keys: UserPublicKeys;
108
+ /**
109
+ * Gets the announcement timestamp in milliseconds since Unix epoch.
110
+ */
111
+ readonly timestamp: number;
112
+ /**
113
+ * Gets the user data embedded in the announcement.
114
+ */
115
+ readonly user_data: Uint8Array;
116
+ }
117
+ /**
118
+ * Encryption key for AEAD operations (AES-256-SIV).
119
+ *
120
+ * AES-256-SIV uses a 64-byte (512-bit) key: two 256-bit keys for encryption and MAC.
121
+ */
122
+ export class EncryptionKey {
123
+ private constructor();
124
+ free(): void;
125
+ [Symbol.dispose](): void;
126
+ /**
127
+ * Creates an encryption key from raw bytes (must be 64 bytes).
128
+ */
129
+ static from_bytes(bytes: Uint8Array): EncryptionKey;
130
+ /**
131
+ * Generates a new random encryption key (64 bytes).
132
+ */
133
+ static generate(): EncryptionKey;
134
+ /**
135
+ * Gets the raw bytes of the encryption key.
136
+ */
137
+ to_bytes(): Uint8Array;
138
+ /**
139
+ * Generates a deterministic encryption key (64 bytes) from a seed and salt.
140
+ *
141
+ * Uses Argon2id via `crypto_password_kdf` to derive a 64-byte key suitable for
142
+ * AES-256-SIV (which requires 64 bytes: 2×256-bit keys).
143
+ *
144
+ * - `seed`: application-provided seed string (treat like a password)
145
+ * - `salt`: unique, random salt (minimum 8 bytes, recommended 16+ bytes)
146
+ */
147
+ static from_seed(seed: string, salt: Uint8Array): EncryptionKey;
148
+ }
149
+ /**
150
+ * Nonce for AEAD operations (AES-256-SIV).
151
+ *
152
+ * AES-256-SIV uses a 16-byte (128-bit) nonce. The nonce should be unique
153
+ * per encryption for maximum security, though SIV mode is nonce-misuse resistant.
154
+ */
155
+ export class Nonce {
156
+ private constructor();
157
+ free(): void;
158
+ [Symbol.dispose](): void;
159
+ /**
160
+ * Creates a nonce from raw bytes (must be 16 bytes).
161
+ */
162
+ static from_bytes(bytes: Uint8Array): Nonce;
163
+ /**
164
+ * Generates a new random nonce (16 bytes).
165
+ */
166
+ static generate(): Nonce;
167
+ /**
168
+ * Gets the raw bytes of the nonce.
169
+ */
170
+ to_bytes(): Uint8Array;
171
+ }
172
+ /**
173
+ * Output from receiving a message.
174
+ */
175
+ export class ReceiveMessageOutput {
176
+ private constructor();
177
+ free(): void;
178
+ [Symbol.dispose](): void;
179
+ /**
180
+ * Gets the list of newly acknowledged seekers.
181
+ */
182
+ readonly acknowledged_seekers: Array<any>;
183
+ /**
184
+ * Gets the received message contents.
185
+ */
186
+ readonly message: Uint8Array;
187
+ /**
188
+ * Gets the sender's user id (32 bytes).
189
+ */
190
+ readonly user_id: Uint8Array;
191
+ /**
192
+ * Gets the message timestamp (milliseconds since Unix epoch).
193
+ */
194
+ readonly timestamp: number;
195
+ }
196
+ /**
197
+ * Output from sending a message.
198
+ */
199
+ export class SendMessageOutput {
200
+ private constructor();
201
+ free(): void;
202
+ [Symbol.dispose](): void;
203
+ /**
204
+ * Gets the encrypted message data.
205
+ */
206
+ readonly data: Uint8Array;
207
+ /**
208
+ * Gets the seeker (identifier for message board lookup).
209
+ */
210
+ readonly seeker: Uint8Array;
211
+ }
212
+ /**
213
+ * Session manager configuration for controlling session behavior.
214
+ */
215
+ export class SessionConfig {
216
+ free(): void;
217
+ [Symbol.dispose](): void;
218
+ /**
219
+ * Creates a default configuration with sensible defaults:
220
+ * - Announcement age: 1 week
221
+ * - Announcement future: 1 minute
222
+ * - Message age: 1 week
223
+ * - Message future: 1 minute
224
+ * - Session inactivity: 1 week
225
+ * - Keep-alive interval: 1 day
226
+ * - Max lag: 10000 messages
227
+ */
228
+ static new_default(): SessionConfig;
229
+ /**
230
+ * Creates a new session configuration with the given parameters.
231
+ */
232
+ constructor(
233
+ max_incoming_announcement_age_millis: number,
234
+ max_incoming_announcement_future_millis: number,
235
+ max_incoming_message_age_millis: number,
236
+ max_incoming_message_future_millis: number,
237
+ max_session_inactivity_millis: number,
238
+ keep_alive_interval_millis: number,
239
+ max_session_lag_length: bigint
240
+ );
241
+ }
242
+ /**
243
+ * Session manager wrapper for WebAssembly.
244
+ */
245
+ export class SessionManagerWrapper {
246
+ free(): void;
247
+ [Symbol.dispose](): void;
248
+ /**
249
+ * Discards a peer and all associated session state.
250
+ */
251
+ peer_discard(peer_id: Uint8Array): void;
252
+ /**
253
+ * Sends a message to a peer.
254
+ */
255
+ send_message(
256
+ peer_id: Uint8Array,
257
+ message_contents: Uint8Array
258
+ ): SendMessageOutput | undefined;
259
+ /**
260
+ * Serializes and encrypts the session manager into a blob.
261
+ */
262
+ to_encrypted_blob(key: EncryptionKey): Uint8Array;
263
+ /**
264
+ * Deserializes a session manager from an encrypted blob.
265
+ */
266
+ static from_encrypted_blob(
267
+ encrypted_blob: Uint8Array,
268
+ key: EncryptionKey
269
+ ): SessionManagerWrapper;
270
+ /**
271
+ * Gets the session status for a peer.
272
+ */
273
+ peer_session_status(peer_id: Uint8Array): SessionStatus;
274
+ /**
275
+ * Establishes an outgoing session with a peer.
276
+ *
277
+ * # Parameters
278
+ *
279
+ * - `peer_pk`: The peer's public keys
280
+ * - `our_pk`: Our public keys
281
+ * - `our_sk`: Our secret keys
282
+ * - `user_data`: Arbitrary user data to include in the announcement (can be empty)
283
+ *
284
+ * # Security Warning
285
+ *
286
+ * **The user_data in announcements has reduced security compared to regular messages:**
287
+ * - ✅ **Plausible deniability preserved**: The user_data is not cryptographically signed,
288
+ * so you can deny having sent specific user_data content (though you cannot deny the
289
+ * announcement itself).
290
+ * - ❌ **No post-compromise secrecy**: If your long-term keys are compromised in the
291
+ * future, past announcements (including their user_data) can be decrypted.
292
+ *
293
+ * **Recommendation**: Avoid including highly sensitive information in user_data. Use it for
294
+ * metadata like protocol version, public display names, or capability flags. Send truly
295
+ * sensitive data through regular messages after the session is established.
296
+ *
297
+ * # Returns
298
+ *
299
+ * The announcement bytes to publish to the blockchain.
300
+ */
301
+ establish_outgoing_session(
302
+ peer_pk: UserPublicKeys,
303
+ our_pk: UserPublicKeys,
304
+ our_sk: UserSecretKeys,
305
+ user_data: Uint8Array
306
+ ): Uint8Array;
307
+ /**
308
+ * Feeds an incoming announcement from the blockchain.
309
+ *
310
+ * # Parameters
311
+ *
312
+ * - `announcement_bytes`: The raw announcement bytes received from the blockchain
313
+ * - `our_pk`: Our public keys
314
+ * - `our_sk`: Our secret keys
315
+ *
316
+ * # Returns
317
+ *
318
+ * If the announcement is valid, returns an `AnnouncementResult` containing:
319
+ * - The announcer's public keys
320
+ * - The timestamp when the announcement was created (milliseconds since Unix epoch)
321
+ * - The user data embedded in the announcement
322
+ *
323
+ * Returns `None` if the announcement is invalid or too old.
324
+ *
325
+ * # Security Warning
326
+ *
327
+ * **The user_data in announcements has reduced security compared to regular messages:**
328
+ * - ✅ **Plausible deniability preserved**: The user_data is not cryptographically signed,
329
+ * so the sender can deny having sent specific user_data content (though they cannot deny
330
+ * the announcement itself).
331
+ * - ❌ **No post-compromise secrecy**: If the sender's long-term keys are compromised
332
+ * in the future, all past announcements (including their user_data) can be decrypted.
333
+ *
334
+ * **Recommendation**: Treat user_data as having limited confidentiality. Use it for
335
+ * metadata that is not highly sensitive. Send truly sensitive information through regular
336
+ * messages after the session is established.
337
+ */
338
+ feed_incoming_announcement(
339
+ announcement_bytes: Uint8Array,
340
+ our_pk: UserPublicKeys,
341
+ our_sk: UserSecretKeys
342
+ ): AnnouncementResult | undefined;
343
+ /**
344
+ * Gets the list of message board seekers to monitor.
345
+ */
346
+ get_message_board_read_keys(): Array<any>;
347
+ /**
348
+ * Processes an incoming message from the message board.
349
+ */
350
+ feed_incoming_message_board_read(
351
+ seeker: Uint8Array,
352
+ ciphertext: Uint8Array,
353
+ our_sk: UserSecretKeys
354
+ ): ReceiveMessageOutput | undefined;
355
+ /**
356
+ * Creates a new session manager with the given configuration.
357
+ */
358
+ constructor(config: SessionConfig);
359
+ /**
360
+ * Refreshes sessions and returns peer IDs that need keep-alive messages.
361
+ */
362
+ refresh(): Array<any>;
363
+ /**
364
+ * Gets the list of all peer IDs.
365
+ */
366
+ peer_list(): Array<any>;
367
+ }
368
+ /**
369
+ * User keypair containing both public and secret keys.
370
+ */
371
+ export class UserKeys {
372
+ private constructor();
373
+ free(): void;
374
+ [Symbol.dispose](): void;
375
+ /**
376
+ * Gets the public keys.
377
+ */
378
+ public_keys(): UserPublicKeys;
379
+ /**
380
+ * Gets the secret keys.
381
+ */
382
+ secret_keys(): UserSecretKeys;
383
+ }
384
+ /**
385
+ * User public keys for authentication and encryption.
386
+ */
387
+ export class UserPublicKeys {
388
+ private constructor();
389
+ free(): void;
390
+ [Symbol.dispose](): void;
391
+ /**
392
+ * Deserializes public keys from bytes.
393
+ */
394
+ static from_bytes(bytes: Uint8Array): UserPublicKeys;
395
+ /**
396
+ * Serializes the public keys to bytes.
397
+ */
398
+ to_bytes(): Uint8Array;
399
+ /**
400
+ * Derives a unique user ID from the public keys.
401
+ */
402
+ derive_id(): Uint8Array;
403
+ /**
404
+ * Gets the KEM public key bytes.
405
+ */
406
+ readonly kem_public_key: Uint8Array;
407
+ /**
408
+ * Gets the Massa public key bytes.
409
+ */
410
+ readonly massa_public_key: Uint8Array;
411
+ /**
412
+ * Gets the DSA verification key bytes.
413
+ */
414
+ readonly dsa_verification_key: Uint8Array;
415
+ }
416
+ /**
417
+ * User secret keys for signing and decryption.
418
+ */
419
+ export class UserSecretKeys {
420
+ private constructor();
421
+ free(): void;
422
+ [Symbol.dispose](): void;
423
+ /**
424
+ * Deserializes secret keys from bytes.
425
+ */
426
+ static from_bytes(bytes: Uint8Array): UserSecretKeys;
427
+ /**
428
+ * Serializes the secret keys to bytes for secure storage.
429
+ */
430
+ to_bytes(): Uint8Array;
431
+ /**
432
+ * Gets the KEM secret key bytes.
433
+ */
434
+ readonly kem_secret_key: Uint8Array;
435
+ /**
436
+ * Gets the DSA signing key bytes.
437
+ */
438
+ readonly dsa_signing_key: Uint8Array;
439
+ /**
440
+ * Gets only the Massa secret key bytes
441
+ */
442
+ readonly massa_secret_key: Uint8Array;
443
+ }
444
+
445
+ export type InitInput =
446
+ | RequestInfo
447
+ | URL
448
+ | Response
449
+ | BufferSource
450
+ | WebAssembly.Module;
451
+
452
+ export interface InitOutput {
453
+ readonly memory: WebAssembly.Memory;
454
+ readonly __wbg_announcementresult_free: (a: number, b: number) => void;
455
+ readonly __wbg_encryptionkey_free: (a: number, b: number) => void;
456
+ readonly __wbg_nonce_free: (a: number, b: number) => void;
457
+ readonly __wbg_receivemessageoutput_free: (a: number, b: number) => void;
458
+ readonly __wbg_sendmessageoutput_free: (a: number, b: number) => void;
459
+ readonly __wbg_sessionconfig_free: (a: number, b: number) => void;
460
+ readonly __wbg_sessionmanagerwrapper_free: (a: number, b: number) => void;
461
+ readonly __wbg_userkeys_free: (a: number, b: number) => void;
462
+ readonly __wbg_userpublickeys_free: (a: number, b: number) => void;
463
+ readonly __wbg_usersecretkeys_free: (a: number, b: number) => void;
464
+ readonly aead_decrypt: (
465
+ a: number,
466
+ b: number,
467
+ c: number,
468
+ d: number,
469
+ e: number,
470
+ f: number
471
+ ) => [number, number];
472
+ readonly aead_encrypt: (
473
+ a: number,
474
+ b: number,
475
+ c: number,
476
+ d: number,
477
+ e: number,
478
+ f: number
479
+ ) => [number, number];
480
+ readonly announcementresult_announcer_public_keys: (a: number) => number;
481
+ readonly announcementresult_timestamp: (a: number) => number;
482
+ readonly announcementresult_user_data: (a: number) => [number, number];
483
+ readonly encryptionkey_from_bytes: (
484
+ a: number,
485
+ b: number
486
+ ) => [number, number, number];
487
+ readonly encryptionkey_from_seed: (
488
+ a: number,
489
+ b: number,
490
+ c: number,
491
+ d: number
492
+ ) => [number, number, number];
493
+ readonly encryptionkey_generate: () => number;
494
+ readonly encryptionkey_to_bytes: (a: number) => [number, number];
495
+ readonly generate_user_keys: (
496
+ a: number,
497
+ b: number
498
+ ) => [number, number, number];
499
+ readonly nonce_from_bytes: (a: number, b: number) => [number, number, number];
500
+ readonly nonce_generate: () => number;
501
+ readonly nonce_to_bytes: (a: number) => [number, number];
502
+ readonly receivemessageoutput_acknowledged_seekers: (a: number) => any;
503
+ readonly receivemessageoutput_message: (a: number) => [number, number];
504
+ readonly receivemessageoutput_timestamp: (a: number) => number;
505
+ readonly receivemessageoutput_user_id: (a: number) => [number, number];
506
+ readonly sendmessageoutput_data: (a: number) => [number, number];
507
+ readonly sendmessageoutput_seeker: (a: number) => [number, number];
508
+ readonly sessionconfig_new: (
509
+ a: number,
510
+ b: number,
511
+ c: number,
512
+ d: number,
513
+ e: number,
514
+ f: number,
515
+ g: bigint
516
+ ) => number;
517
+ readonly sessionconfig_new_default: () => number;
518
+ readonly sessionmanagerwrapper_establish_outgoing_session: (
519
+ a: number,
520
+ b: number,
521
+ c: number,
522
+ d: number,
523
+ e: number,
524
+ f: number
525
+ ) => [number, number];
526
+ readonly sessionmanagerwrapper_feed_incoming_announcement: (
527
+ a: number,
528
+ b: number,
529
+ c: number,
530
+ d: number,
531
+ e: number
532
+ ) => number;
533
+ readonly sessionmanagerwrapper_feed_incoming_message_board_read: (
534
+ a: number,
535
+ b: number,
536
+ c: number,
537
+ d: number,
538
+ e: number,
539
+ f: number
540
+ ) => number;
541
+ readonly sessionmanagerwrapper_from_encrypted_blob: (
542
+ a: number,
543
+ b: number,
544
+ c: number
545
+ ) => [number, number, number];
546
+ readonly sessionmanagerwrapper_get_message_board_read_keys: (
547
+ a: number
548
+ ) => any;
549
+ readonly sessionmanagerwrapper_new: (a: number) => number;
550
+ readonly sessionmanagerwrapper_peer_discard: (
551
+ a: number,
552
+ b: number,
553
+ c: number
554
+ ) => [number, number];
555
+ readonly sessionmanagerwrapper_peer_list: (a: number) => any;
556
+ readonly sessionmanagerwrapper_peer_session_status: (
557
+ a: number,
558
+ b: number,
559
+ c: number
560
+ ) => [number, number, number];
561
+ readonly sessionmanagerwrapper_refresh: (a: number) => any;
562
+ readonly sessionmanagerwrapper_send_message: (
563
+ a: number,
564
+ b: number,
565
+ c: number,
566
+ d: number,
567
+ e: number
568
+ ) => [number, number, number];
569
+ readonly sessionmanagerwrapper_to_encrypted_blob: (
570
+ a: number,
571
+ b: number
572
+ ) => [number, number, number, number];
573
+ readonly userkeys_public_keys: (a: number) => [number, number, number];
574
+ readonly userkeys_secret_keys: (a: number) => [number, number, number];
575
+ readonly userpublickeys_derive_id: (a: number) => [number, number];
576
+ readonly userpublickeys_dsa_verification_key: (a: number) => [number, number];
577
+ readonly userpublickeys_from_bytes: (
578
+ a: number,
579
+ b: number
580
+ ) => [number, number, number];
581
+ readonly userpublickeys_kem_public_key: (a: number) => [number, number];
582
+ readonly userpublickeys_massa_public_key: (a: number) => [number, number];
583
+ readonly userpublickeys_to_bytes: (
584
+ a: number
585
+ ) => [number, number, number, number];
586
+ readonly usersecretkeys_dsa_signing_key: (a: number) => [number, number];
587
+ readonly usersecretkeys_from_bytes: (
588
+ a: number,
589
+ b: number
590
+ ) => [number, number, number];
591
+ readonly usersecretkeys_kem_secret_key: (a: number) => [number, number];
592
+ readonly usersecretkeys_massa_secret_key: (a: number) => [number, number];
593
+ readonly usersecretkeys_to_bytes: (
594
+ a: number
595
+ ) => [number, number, number, number];
596
+ readonly start: () => void;
597
+ readonly __wbindgen_exn_store: (a: number) => void;
598
+ readonly __externref_table_alloc: () => number;
599
+ readonly __wbindgen_export_2: WebAssembly.Table;
600
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
601
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
602
+ readonly __wbindgen_realloc: (
603
+ a: number,
604
+ b: number,
605
+ c: number,
606
+ d: number
607
+ ) => number;
608
+ readonly __externref_table_dealloc: (a: number) => void;
609
+ readonly __wbindgen_start: () => void;
610
+ }
611
+
612
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
613
+ /**
614
+ * Instantiates the given `module`, which can either be bytes or
615
+ * a precompiled `WebAssembly.Module`.
616
+ *
617
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
618
+ *
619
+ * @returns {InitOutput}
620
+ */
621
+ export function initSync(
622
+ module: { module: SyncInitInput } | SyncInitInput
623
+ ): InitOutput;
624
+
625
+ /**
626
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
627
+ * for everything else, calls `WebAssembly.instantiate` directly.
628
+ *
629
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
630
+ *
631
+ * @returns {Promise<InitOutput>}
632
+ */
633
+ export default function __wbg_init(
634
+ module_or_path?:
635
+ | { module_or_path: InitInput | Promise<InitInput> }
636
+ | InitInput
637
+ | Promise<InitInput>
638
+ ): Promise<InitOutput>;