@signalapp/libsignal-client 0.15.0
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/Native.d.ts +326 -0
- package/Native.js +6 -0
- package/dist/Address.d.ts +9 -0
- package/dist/Address.js +27 -0
- package/dist/Errors.d.ts +48 -0
- package/dist/Errors.js +54 -0
- package/dist/index.d.ts +353 -0
- package/dist/index.js +948 -0
- package/dist/zkgroup/NotarySignature.d.ts +6 -0
- package/dist/zkgroup/NotarySignature.js +15 -0
- package/dist/zkgroup/ServerPublicParams.d.ts +7 -0
- package/dist/zkgroup/ServerPublicParams.js +18 -0
- package/dist/zkgroup/ServerSecretParams.d.ts +12 -0
- package/dist/zkgroup/ServerSecretParams.js +36 -0
- package/dist/zkgroup/auth/AuthCredential.d.ts +5 -0
- package/dist/zkgroup/auth/AuthCredential.js +15 -0
- package/dist/zkgroup/auth/AuthCredentialPresentation.d.ts +8 -0
- package/dist/zkgroup/auth/AuthCredentialPresentation.js +22 -0
- package/dist/zkgroup/auth/AuthCredentialResponse.d.ts +5 -0
- package/dist/zkgroup/auth/AuthCredentialResponse.js +15 -0
- package/dist/zkgroup/auth/ClientZkAuthOperations.d.ts +14 -0
- package/dist/zkgroup/auth/ClientZkAuthOperations.js +29 -0
- package/dist/zkgroup/auth/ServerZkAuthOperations.d.ts +13 -0
- package/dist/zkgroup/auth/ServerZkAuthOperations.js +28 -0
- package/dist/zkgroup/groups/ClientZkGroupCipher.d.ts +17 -0
- package/dist/zkgroup/groups/ClientZkGroupCipher.js +42 -0
- package/dist/zkgroup/groups/GroupIdentifier.d.ts +6 -0
- package/dist/zkgroup/groups/GroupIdentifier.js +15 -0
- package/dist/zkgroup/groups/GroupMasterKey.d.ts +6 -0
- package/dist/zkgroup/groups/GroupMasterKey.js +15 -0
- package/dist/zkgroup/groups/GroupPublicParams.d.ts +7 -0
- package/dist/zkgroup/groups/GroupPublicParams.js +19 -0
- package/dist/zkgroup/groups/GroupSecretParams.d.ts +12 -0
- package/dist/zkgroup/groups/GroupSecretParams.js +35 -0
- package/dist/zkgroup/groups/ProfileKeyCiphertext.d.ts +5 -0
- package/dist/zkgroup/groups/ProfileKeyCiphertext.js +15 -0
- package/dist/zkgroup/groups/UuidCiphertext.d.ts +5 -0
- package/dist/zkgroup/groups/UuidCiphertext.js +15 -0
- package/dist/zkgroup/index.d.ts +37 -0
- package/dist/zkgroup/index.js +87 -0
- package/dist/zkgroup/internal/BigIntUtil.d.ts +2 -0
- package/dist/zkgroup/internal/BigIntUtil.js +18 -0
- package/dist/zkgroup/internal/ByteArray.d.ts +8 -0
- package/dist/zkgroup/internal/ByteArray.js +28 -0
- package/dist/zkgroup/internal/Constants.d.ts +4 -0
- package/dist/zkgroup/internal/Constants.js +12 -0
- package/dist/zkgroup/internal/UUIDUtil.d.ts +4 -0
- package/dist/zkgroup/internal/UUIDUtil.js +23 -0
- package/dist/zkgroup/profiles/ClientZkProfileOperations.d.ts +27 -0
- package/dist/zkgroup/profiles/ClientZkProfileOperations.js +57 -0
- package/dist/zkgroup/profiles/PniCredential.d.ts +5 -0
- package/dist/zkgroup/profiles/PniCredential.js +15 -0
- package/dist/zkgroup/profiles/PniCredentialPresentation.d.ts +10 -0
- package/dist/zkgroup/profiles/PniCredentialPresentation.js +26 -0
- package/dist/zkgroup/profiles/PniCredentialRequestContext.d.ts +7 -0
- package/dist/zkgroup/profiles/PniCredentialRequestContext.js +19 -0
- package/dist/zkgroup/profiles/PniCredentialResponse.d.ts +5 -0
- package/dist/zkgroup/profiles/PniCredentialResponse.js +15 -0
- package/dist/zkgroup/profiles/ProfileKey.d.ts +11 -0
- package/dist/zkgroup/profiles/ProfileKey.js +25 -0
- package/dist/zkgroup/profiles/ProfileKeyCommitment.d.ts +5 -0
- package/dist/zkgroup/profiles/ProfileKeyCommitment.js +15 -0
- package/dist/zkgroup/profiles/ProfileKeyCredential.d.ts +5 -0
- package/dist/zkgroup/profiles/ProfileKeyCredential.js +15 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialPresentation.d.ts +9 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialPresentation.js +23 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialRequest.d.ts +5 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialRequest.js +15 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialRequestContext.d.ts +7 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialRequestContext.js +19 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialResponse.d.ts +5 -0
- package/dist/zkgroup/profiles/ProfileKeyCredentialResponse.js +15 -0
- package/dist/zkgroup/profiles/ProfileKeyVersion.d.ts +7 -0
- package/dist/zkgroup/profiles/ProfileKeyVersion.js +18 -0
- package/dist/zkgroup/profiles/ServerZkProfileOperations.d.ts +20 -0
- package/dist/zkgroup/profiles/ServerZkProfileOperations.js +39 -0
- package/dist/zkgroup/receipts/ClientZkReceiptOperations.d.ts +16 -0
- package/dist/zkgroup/receipts/ClientZkReceiptOperations.js +36 -0
- package/dist/zkgroup/receipts/ReceiptCredential.d.ts +7 -0
- package/dist/zkgroup/receipts/ReceiptCredential.js +21 -0
- package/dist/zkgroup/receipts/ReceiptCredentialPresentation.d.ts +10 -0
- package/dist/zkgroup/receipts/ReceiptCredentialPresentation.js +26 -0
- package/dist/zkgroup/receipts/ReceiptCredentialRequest.d.ts +5 -0
- package/dist/zkgroup/receipts/ReceiptCredentialRequest.js +15 -0
- package/dist/zkgroup/receipts/ReceiptCredentialRequestContext.d.ts +8 -0
- package/dist/zkgroup/receipts/ReceiptCredentialRequestContext.js +20 -0
- package/dist/zkgroup/receipts/ReceiptCredentialResponse.d.ts +5 -0
- package/dist/zkgroup/receipts/ReceiptCredentialResponse.js +15 -0
- package/dist/zkgroup/receipts/ReceiptSerial.d.ts +6 -0
- package/dist/zkgroup/receipts/ReceiptSerial.js +15 -0
- package/dist/zkgroup/receipts/ServerZkReceiptOperations.d.ts +12 -0
- package/dist/zkgroup/receipts/ServerZkReceiptOperations.js +28 -0
- package/package.json +57 -0
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/prebuilds/win32-arm64/node.napi.node +0 -0
- package/prebuilds/win32-x64/node.napi.node +0 -0
- package/zkgroup.d.ts +7 -0
- package/zkgroup.js +7 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,948 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020-2021 Signal Messenger, LLC.
|
|
4
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
5
|
+
//
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.initLogger = exports.LogLevel = exports.HsmEnclaveClient = exports.sealedSenderDecryptToUsmc = exports.sealedSenderDecryptMessage = exports.sealedSenderMultiRecipientMessageForSingleRecipient = exports.sealedSenderMultiRecipientEncrypt = exports.sealedSenderEncrypt = exports.sealedSenderEncryptMessage = exports.signalDecryptPreKey = exports.signalDecrypt = exports.signalEncrypt = exports.processPreKeyBundle = exports.DecryptionErrorMessage = exports.PlaintextContent = exports.CiphertextMessage = exports.SealedSenderDecryptionResult = exports.groupDecrypt = exports.groupEncrypt = exports.SenderKeyStore = exports.SignedPreKeyStore = exports.PreKeyStore = exports.IdentityKeyStore = exports.SessionStore = exports.UnidentifiedSenderMessageContent = exports.SenderKeyMessage = exports.processSenderKeyDistributionMessage = exports.SenderKeyDistributionMessage = exports.SenderCertificate = exports.SenderKeyRecord = exports.ServerCertificate = exports.SessionRecord = exports.PreKeySignalMessage = exports.SignalMessage = exports.SignedPreKeyRecord = exports.PreKeyRecord = exports.PreKeyBundle = exports.IdentityKeyPair = exports.PrivateKey = exports.PublicKey = exports.Aes256GcmSiv = exports.Fingerprint = exports.DisplayableFingerprint = exports.ScannableFingerprint = exports.hkdf = exports.HKDF = exports.ContentHint = exports.Direction = exports.CiphertextMessageType = void 0;
|
|
27
|
+
const uuid = require("uuid");
|
|
28
|
+
const Errors = require("./Errors");
|
|
29
|
+
__exportStar(require("./Errors"), exports);
|
|
30
|
+
const Address_1 = require("./Address");
|
|
31
|
+
__exportStar(require("./Address"), exports);
|
|
32
|
+
const Native = require("../Native");
|
|
33
|
+
Native.registerErrors(Errors);
|
|
34
|
+
// These enums must be kept in sync with their Rust counterparts.
|
|
35
|
+
var CiphertextMessageType;
|
|
36
|
+
(function (CiphertextMessageType) {
|
|
37
|
+
CiphertextMessageType[CiphertextMessageType["Whisper"] = 2] = "Whisper";
|
|
38
|
+
CiphertextMessageType[CiphertextMessageType["PreKey"] = 3] = "PreKey";
|
|
39
|
+
CiphertextMessageType[CiphertextMessageType["SenderKey"] = 7] = "SenderKey";
|
|
40
|
+
CiphertextMessageType[CiphertextMessageType["Plaintext"] = 8] = "Plaintext";
|
|
41
|
+
})(CiphertextMessageType = exports.CiphertextMessageType || (exports.CiphertextMessageType = {}));
|
|
42
|
+
var Direction;
|
|
43
|
+
(function (Direction) {
|
|
44
|
+
Direction[Direction["Sending"] = 0] = "Sending";
|
|
45
|
+
Direction[Direction["Receiving"] = 1] = "Receiving";
|
|
46
|
+
})(Direction = exports.Direction || (exports.Direction = {}));
|
|
47
|
+
// This enum must be kept in sync with sealed_sender.proto.
|
|
48
|
+
var ContentHint;
|
|
49
|
+
(function (ContentHint) {
|
|
50
|
+
ContentHint[ContentHint["Default"] = 0] = "Default";
|
|
51
|
+
ContentHint[ContentHint["Resendable"] = 1] = "Resendable";
|
|
52
|
+
ContentHint[ContentHint["Implicit"] = 2] = "Implicit";
|
|
53
|
+
})(ContentHint = exports.ContentHint || (exports.ContentHint = {}));
|
|
54
|
+
class HKDF {
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Use the top-level 'hkdf' function for standard HKDF behavior
|
|
57
|
+
*/
|
|
58
|
+
static new(version) {
|
|
59
|
+
if (version != 3) {
|
|
60
|
+
throw new Error('HKDF versions other than 3 are no longer supported');
|
|
61
|
+
}
|
|
62
|
+
return new HKDF();
|
|
63
|
+
}
|
|
64
|
+
deriveSecrets(outputLength, keyMaterial, label, salt) {
|
|
65
|
+
return hkdf(outputLength, keyMaterial, label, salt);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.HKDF = HKDF;
|
|
69
|
+
function hkdf(outputLength, keyMaterial, label, salt) {
|
|
70
|
+
return Native.HKDF_DeriveSecrets(outputLength, keyMaterial, label, salt);
|
|
71
|
+
}
|
|
72
|
+
exports.hkdf = hkdf;
|
|
73
|
+
class ScannableFingerprint {
|
|
74
|
+
constructor(scannable) {
|
|
75
|
+
this.scannable = scannable;
|
|
76
|
+
}
|
|
77
|
+
static _fromBuffer(scannable) {
|
|
78
|
+
return new ScannableFingerprint(scannable);
|
|
79
|
+
}
|
|
80
|
+
compare(other) {
|
|
81
|
+
return Native.ScannableFingerprint_Compare(this.scannable, other.scannable);
|
|
82
|
+
}
|
|
83
|
+
toBuffer() {
|
|
84
|
+
return this.scannable;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.ScannableFingerprint = ScannableFingerprint;
|
|
88
|
+
class DisplayableFingerprint {
|
|
89
|
+
constructor(display) {
|
|
90
|
+
this.display = display;
|
|
91
|
+
}
|
|
92
|
+
static _fromString(display) {
|
|
93
|
+
return new DisplayableFingerprint(display);
|
|
94
|
+
}
|
|
95
|
+
toString() {
|
|
96
|
+
return this.display;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.DisplayableFingerprint = DisplayableFingerprint;
|
|
100
|
+
class Fingerprint {
|
|
101
|
+
constructor(nativeHandle) {
|
|
102
|
+
this._nativeHandle = nativeHandle;
|
|
103
|
+
}
|
|
104
|
+
static new(iterations, version, localIdentifier, localKey, remoteIdentifier, remoteKey) {
|
|
105
|
+
return new Fingerprint(Native.Fingerprint_New(iterations, version, localIdentifier, localKey, remoteIdentifier, remoteKey));
|
|
106
|
+
}
|
|
107
|
+
displayableFingerprint() {
|
|
108
|
+
return DisplayableFingerprint._fromString(Native.Fingerprint_DisplayString(this));
|
|
109
|
+
}
|
|
110
|
+
scannableFingerprint() {
|
|
111
|
+
return ScannableFingerprint._fromBuffer(Native.Fingerprint_ScannableEncoding(this));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.Fingerprint = Fingerprint;
|
|
115
|
+
class Aes256GcmSiv {
|
|
116
|
+
constructor(key) {
|
|
117
|
+
this._nativeHandle = Native.Aes256GcmSiv_New(key);
|
|
118
|
+
}
|
|
119
|
+
static new(key) {
|
|
120
|
+
return new Aes256GcmSiv(key);
|
|
121
|
+
}
|
|
122
|
+
encrypt(message, nonce, associated_data) {
|
|
123
|
+
return Native.Aes256GcmSiv_Encrypt(this, message, nonce, associated_data);
|
|
124
|
+
}
|
|
125
|
+
decrypt(message, nonce, associated_data) {
|
|
126
|
+
return Native.Aes256GcmSiv_Decrypt(this, message, nonce, associated_data);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.Aes256GcmSiv = Aes256GcmSiv;
|
|
130
|
+
class PublicKey {
|
|
131
|
+
constructor(handle) {
|
|
132
|
+
this._nativeHandle = handle;
|
|
133
|
+
}
|
|
134
|
+
static _fromNativeHandle(handle) {
|
|
135
|
+
return new PublicKey(handle);
|
|
136
|
+
}
|
|
137
|
+
static deserialize(buf) {
|
|
138
|
+
return new PublicKey(Native.PublicKey_Deserialize(buf));
|
|
139
|
+
}
|
|
140
|
+
/// Returns -1, 0, or 1
|
|
141
|
+
compare(other) {
|
|
142
|
+
return Native.PublicKey_Compare(this, other);
|
|
143
|
+
}
|
|
144
|
+
serialize() {
|
|
145
|
+
return Native.PublicKey_Serialize(this);
|
|
146
|
+
}
|
|
147
|
+
getPublicKeyBytes() {
|
|
148
|
+
return Native.PublicKey_GetPublicKeyBytes(this);
|
|
149
|
+
}
|
|
150
|
+
verify(msg, sig) {
|
|
151
|
+
return Native.PublicKey_Verify(this, msg, sig);
|
|
152
|
+
}
|
|
153
|
+
verifyAlternateIdentity(other, signature) {
|
|
154
|
+
return Native.IdentityKey_VerifyAlternateIdentity(this, other, signature);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.PublicKey = PublicKey;
|
|
158
|
+
class PrivateKey {
|
|
159
|
+
constructor(handle) {
|
|
160
|
+
this._nativeHandle = handle;
|
|
161
|
+
}
|
|
162
|
+
static _fromNativeHandle(handle) {
|
|
163
|
+
return new PrivateKey(handle);
|
|
164
|
+
}
|
|
165
|
+
static generate() {
|
|
166
|
+
return new PrivateKey(Native.PrivateKey_Generate());
|
|
167
|
+
}
|
|
168
|
+
static deserialize(buf) {
|
|
169
|
+
return new PrivateKey(Native.PrivateKey_Deserialize(buf));
|
|
170
|
+
}
|
|
171
|
+
serialize() {
|
|
172
|
+
return Native.PrivateKey_Serialize(this);
|
|
173
|
+
}
|
|
174
|
+
sign(msg) {
|
|
175
|
+
return Native.PrivateKey_Sign(this, msg);
|
|
176
|
+
}
|
|
177
|
+
agree(other_key) {
|
|
178
|
+
return Native.PrivateKey_Agree(this, other_key);
|
|
179
|
+
}
|
|
180
|
+
getPublicKey() {
|
|
181
|
+
return PublicKey._fromNativeHandle(Native.PrivateKey_GetPublicKey(this));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
exports.PrivateKey = PrivateKey;
|
|
185
|
+
class IdentityKeyPair {
|
|
186
|
+
constructor(publicKey, privateKey) {
|
|
187
|
+
this.publicKey = publicKey;
|
|
188
|
+
this.privateKey = privateKey;
|
|
189
|
+
}
|
|
190
|
+
static generate() {
|
|
191
|
+
const privateKey = PrivateKey.generate();
|
|
192
|
+
return new IdentityKeyPair(privateKey.getPublicKey(), privateKey);
|
|
193
|
+
}
|
|
194
|
+
serialize() {
|
|
195
|
+
return Native.IdentityKeyPair_Serialize(this.publicKey, this.privateKey);
|
|
196
|
+
}
|
|
197
|
+
signAlternateIdentity(other) {
|
|
198
|
+
return Native.IdentityKeyPair_SignAlternateIdentity(this.publicKey, this.privateKey, other);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.IdentityKeyPair = IdentityKeyPair;
|
|
202
|
+
class PreKeyBundle {
|
|
203
|
+
constructor(handle) {
|
|
204
|
+
this._nativeHandle = handle;
|
|
205
|
+
}
|
|
206
|
+
static new(registration_id, device_id, prekey_id, prekey, signed_prekey_id, signed_prekey, signed_prekey_signature, identity_key) {
|
|
207
|
+
return new PreKeyBundle(Native.PreKeyBundle_New(registration_id, device_id, prekey_id, prekey != null ? prekey : null,
|
|
208
|
+
//prekey?,
|
|
209
|
+
signed_prekey_id, signed_prekey, signed_prekey_signature, identity_key));
|
|
210
|
+
}
|
|
211
|
+
deviceId() {
|
|
212
|
+
return Native.PreKeyBundle_GetDeviceId(this);
|
|
213
|
+
}
|
|
214
|
+
identityKey() {
|
|
215
|
+
return PublicKey._fromNativeHandle(Native.PreKeyBundle_GetIdentityKey(this));
|
|
216
|
+
}
|
|
217
|
+
preKeyId() {
|
|
218
|
+
return Native.PreKeyBundle_GetPreKeyId(this);
|
|
219
|
+
}
|
|
220
|
+
preKeyPublic() {
|
|
221
|
+
const handle = Native.PreKeyBundle_GetPreKeyPublic(this);
|
|
222
|
+
if (handle == null) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
return PublicKey._fromNativeHandle(handle);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
registrationId() {
|
|
230
|
+
return Native.PreKeyBundle_GetRegistrationId(this);
|
|
231
|
+
}
|
|
232
|
+
signedPreKeyId() {
|
|
233
|
+
return Native.PreKeyBundle_GetSignedPreKeyId(this);
|
|
234
|
+
}
|
|
235
|
+
signedPreKeyPublic() {
|
|
236
|
+
return PublicKey._fromNativeHandle(Native.PreKeyBundle_GetSignedPreKeyPublic(this));
|
|
237
|
+
}
|
|
238
|
+
signedPreKeySignature() {
|
|
239
|
+
return Native.PreKeyBundle_GetSignedPreKeySignature(this);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
exports.PreKeyBundle = PreKeyBundle;
|
|
243
|
+
class PreKeyRecord {
|
|
244
|
+
constructor(handle) {
|
|
245
|
+
this._nativeHandle = handle;
|
|
246
|
+
}
|
|
247
|
+
static _fromNativeHandle(nativeHandle) {
|
|
248
|
+
return new PreKeyRecord(nativeHandle);
|
|
249
|
+
}
|
|
250
|
+
static new(id, pubKey, privKey) {
|
|
251
|
+
return new PreKeyRecord(Native.PreKeyRecord_New(id, pubKey, privKey));
|
|
252
|
+
}
|
|
253
|
+
static deserialize(buffer) {
|
|
254
|
+
return new PreKeyRecord(Native.PreKeyRecord_Deserialize(buffer));
|
|
255
|
+
}
|
|
256
|
+
id() {
|
|
257
|
+
return Native.PreKeyRecord_GetId(this);
|
|
258
|
+
}
|
|
259
|
+
privateKey() {
|
|
260
|
+
return PrivateKey._fromNativeHandle(Native.PreKeyRecord_GetPrivateKey(this));
|
|
261
|
+
}
|
|
262
|
+
publicKey() {
|
|
263
|
+
return PublicKey._fromNativeHandle(Native.PreKeyRecord_GetPublicKey(this));
|
|
264
|
+
}
|
|
265
|
+
serialize() {
|
|
266
|
+
return Native.PreKeyRecord_Serialize(this);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
exports.PreKeyRecord = PreKeyRecord;
|
|
270
|
+
class SignedPreKeyRecord {
|
|
271
|
+
constructor(handle) {
|
|
272
|
+
this._nativeHandle = handle;
|
|
273
|
+
}
|
|
274
|
+
static _fromNativeHandle(nativeHandle) {
|
|
275
|
+
return new SignedPreKeyRecord(nativeHandle);
|
|
276
|
+
}
|
|
277
|
+
static new(id, timestamp, pubKey, privKey, signature) {
|
|
278
|
+
return new SignedPreKeyRecord(Native.SignedPreKeyRecord_New(id, timestamp, pubKey, privKey, signature));
|
|
279
|
+
}
|
|
280
|
+
static deserialize(buffer) {
|
|
281
|
+
return new SignedPreKeyRecord(Native.SignedPreKeyRecord_Deserialize(buffer));
|
|
282
|
+
}
|
|
283
|
+
id() {
|
|
284
|
+
return Native.SignedPreKeyRecord_GetId(this);
|
|
285
|
+
}
|
|
286
|
+
privateKey() {
|
|
287
|
+
return PrivateKey._fromNativeHandle(Native.SignedPreKeyRecord_GetPrivateKey(this));
|
|
288
|
+
}
|
|
289
|
+
publicKey() {
|
|
290
|
+
return PublicKey._fromNativeHandle(Native.SignedPreKeyRecord_GetPublicKey(this));
|
|
291
|
+
}
|
|
292
|
+
serialize() {
|
|
293
|
+
return Native.SignedPreKeyRecord_Serialize(this);
|
|
294
|
+
}
|
|
295
|
+
signature() {
|
|
296
|
+
return Native.SignedPreKeyRecord_GetSignature(this);
|
|
297
|
+
}
|
|
298
|
+
timestamp() {
|
|
299
|
+
return Native.SignedPreKeyRecord_GetTimestamp(this);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
exports.SignedPreKeyRecord = SignedPreKeyRecord;
|
|
303
|
+
class SignalMessage {
|
|
304
|
+
constructor(handle) {
|
|
305
|
+
this._nativeHandle = handle;
|
|
306
|
+
}
|
|
307
|
+
static _new(messageVersion, macKey, senderRatchetKey, counter, previousCounter, ciphertext, senderIdentityKey, receiverIdentityKey) {
|
|
308
|
+
return new SignalMessage(Native.SignalMessage_New(messageVersion, macKey, senderRatchetKey, counter, previousCounter, ciphertext, senderIdentityKey, receiverIdentityKey));
|
|
309
|
+
}
|
|
310
|
+
static deserialize(buffer) {
|
|
311
|
+
return new SignalMessage(Native.SignalMessage_Deserialize(buffer));
|
|
312
|
+
}
|
|
313
|
+
body() {
|
|
314
|
+
return Native.SignalMessage_GetBody(this);
|
|
315
|
+
}
|
|
316
|
+
counter() {
|
|
317
|
+
return Native.SignalMessage_GetCounter(this);
|
|
318
|
+
}
|
|
319
|
+
messageVersion() {
|
|
320
|
+
return Native.SignalMessage_GetMessageVersion(this);
|
|
321
|
+
}
|
|
322
|
+
serialize() {
|
|
323
|
+
return Native.SignalMessage_GetSerialized(this);
|
|
324
|
+
}
|
|
325
|
+
verifyMac(senderIdentityKey, recevierIdentityKey, macKey) {
|
|
326
|
+
return Native.SignalMessage_VerifyMac(this, senderIdentityKey, recevierIdentityKey, macKey);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
exports.SignalMessage = SignalMessage;
|
|
330
|
+
class PreKeySignalMessage {
|
|
331
|
+
constructor(handle) {
|
|
332
|
+
this._nativeHandle = handle;
|
|
333
|
+
}
|
|
334
|
+
static _new(messageVersion, registrationId, preKeyId, signedPreKeyId, baseKey, identityKey, signalMessage) {
|
|
335
|
+
return new PreKeySignalMessage(Native.PreKeySignalMessage_New(messageVersion, registrationId, preKeyId, signedPreKeyId, baseKey, identityKey, signalMessage));
|
|
336
|
+
}
|
|
337
|
+
static deserialize(buffer) {
|
|
338
|
+
return new PreKeySignalMessage(Native.PreKeySignalMessage_Deserialize(buffer));
|
|
339
|
+
}
|
|
340
|
+
preKeyId() {
|
|
341
|
+
return Native.PreKeySignalMessage_GetPreKeyId(this);
|
|
342
|
+
}
|
|
343
|
+
registrationId() {
|
|
344
|
+
return Native.PreKeySignalMessage_GetRegistrationId(this);
|
|
345
|
+
}
|
|
346
|
+
signedPreKeyId() {
|
|
347
|
+
return Native.PreKeySignalMessage_GetSignedPreKeyId(this);
|
|
348
|
+
}
|
|
349
|
+
version() {
|
|
350
|
+
return Native.PreKeySignalMessage_GetVersion(this);
|
|
351
|
+
}
|
|
352
|
+
serialize() {
|
|
353
|
+
return Native.PreKeySignalMessage_Serialize(this);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
exports.PreKeySignalMessage = PreKeySignalMessage;
|
|
357
|
+
class SessionRecord {
|
|
358
|
+
constructor(nativeHandle) {
|
|
359
|
+
this._nativeHandle = nativeHandle;
|
|
360
|
+
}
|
|
361
|
+
static _fromNativeHandle(nativeHandle) {
|
|
362
|
+
return new SessionRecord(nativeHandle);
|
|
363
|
+
}
|
|
364
|
+
static deserialize(buffer) {
|
|
365
|
+
return new SessionRecord(Native.SessionRecord_Deserialize(buffer));
|
|
366
|
+
}
|
|
367
|
+
serialize() {
|
|
368
|
+
return Native.SessionRecord_Serialize(this);
|
|
369
|
+
}
|
|
370
|
+
archiveCurrentState() {
|
|
371
|
+
Native.SessionRecord_ArchiveCurrentState(this);
|
|
372
|
+
}
|
|
373
|
+
localRegistrationId() {
|
|
374
|
+
return Native.SessionRecord_GetLocalRegistrationId(this);
|
|
375
|
+
}
|
|
376
|
+
remoteRegistrationId() {
|
|
377
|
+
return Native.SessionRecord_GetRemoteRegistrationId(this);
|
|
378
|
+
}
|
|
379
|
+
hasCurrentState() {
|
|
380
|
+
return Native.SessionRecord_HasCurrentState(this);
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Returns true if this session was marked as needing a PNI signature and has not received a
|
|
384
|
+
* reply.
|
|
385
|
+
*
|
|
386
|
+
* Precondition: `this.hasCurrentState()`
|
|
387
|
+
*/
|
|
388
|
+
needsPniSignature() {
|
|
389
|
+
return Native.SessionRecord_NeedsPniSignature(this);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Marks whether this session needs a PNI signature included in outgoing messages.
|
|
393
|
+
*
|
|
394
|
+
* Precondition: `this.hasCurrentState()`
|
|
395
|
+
*/
|
|
396
|
+
setNeedsPniSignature(needsPniSignature) {
|
|
397
|
+
Native.SessionRecord_SetNeedsPniSignature(this, needsPniSignature);
|
|
398
|
+
}
|
|
399
|
+
currentRatchetKeyMatches(key) {
|
|
400
|
+
return Native.SessionRecord_CurrentRatchetKeyMatches(this, key);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
exports.SessionRecord = SessionRecord;
|
|
404
|
+
class ServerCertificate {
|
|
405
|
+
constructor(nativeHandle) {
|
|
406
|
+
this._nativeHandle = nativeHandle;
|
|
407
|
+
}
|
|
408
|
+
static _fromNativeHandle(nativeHandle) {
|
|
409
|
+
return new ServerCertificate(nativeHandle);
|
|
410
|
+
}
|
|
411
|
+
static new(keyId, serverKey, trustRoot) {
|
|
412
|
+
return new ServerCertificate(Native.ServerCertificate_New(keyId, serverKey, trustRoot));
|
|
413
|
+
}
|
|
414
|
+
static deserialize(buffer) {
|
|
415
|
+
return new ServerCertificate(Native.ServerCertificate_Deserialize(buffer));
|
|
416
|
+
}
|
|
417
|
+
certificateData() {
|
|
418
|
+
return Native.ServerCertificate_GetCertificate(this);
|
|
419
|
+
}
|
|
420
|
+
key() {
|
|
421
|
+
return PublicKey._fromNativeHandle(Native.ServerCertificate_GetKey(this));
|
|
422
|
+
}
|
|
423
|
+
keyId() {
|
|
424
|
+
return Native.ServerCertificate_GetKeyId(this);
|
|
425
|
+
}
|
|
426
|
+
serialize() {
|
|
427
|
+
return Native.ServerCertificate_GetSerialized(this);
|
|
428
|
+
}
|
|
429
|
+
signature() {
|
|
430
|
+
return Native.ServerCertificate_GetSignature(this);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
exports.ServerCertificate = ServerCertificate;
|
|
434
|
+
class SenderKeyRecord {
|
|
435
|
+
constructor(nativeHandle) {
|
|
436
|
+
this._nativeHandle = nativeHandle;
|
|
437
|
+
}
|
|
438
|
+
static _fromNativeHandle(nativeHandle) {
|
|
439
|
+
return new SenderKeyRecord(nativeHandle);
|
|
440
|
+
}
|
|
441
|
+
static deserialize(buffer) {
|
|
442
|
+
return new SenderKeyRecord(Native.SenderKeyRecord_Deserialize(buffer));
|
|
443
|
+
}
|
|
444
|
+
serialize() {
|
|
445
|
+
return Native.SenderKeyRecord_Serialize(this);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
exports.SenderKeyRecord = SenderKeyRecord;
|
|
449
|
+
class SenderCertificate {
|
|
450
|
+
constructor(nativeHandle) {
|
|
451
|
+
this._nativeHandle = nativeHandle;
|
|
452
|
+
}
|
|
453
|
+
static _fromNativeHandle(nativeHandle) {
|
|
454
|
+
return new SenderCertificate(nativeHandle);
|
|
455
|
+
}
|
|
456
|
+
static new(senderUuid, senderE164, senderDeviceId, senderKey, expiration, signerCert, signerKey) {
|
|
457
|
+
return new SenderCertificate(Native.SenderCertificate_New(senderUuid, senderE164, senderDeviceId, senderKey, expiration, signerCert, signerKey));
|
|
458
|
+
}
|
|
459
|
+
static deserialize(buffer) {
|
|
460
|
+
return new SenderCertificate(Native.SenderCertificate_Deserialize(buffer));
|
|
461
|
+
}
|
|
462
|
+
serialize() {
|
|
463
|
+
return Native.SenderCertificate_GetSerialized(this);
|
|
464
|
+
}
|
|
465
|
+
certificate() {
|
|
466
|
+
return Native.SenderCertificate_GetCertificate(this);
|
|
467
|
+
}
|
|
468
|
+
expiration() {
|
|
469
|
+
return Native.SenderCertificate_GetExpiration(this);
|
|
470
|
+
}
|
|
471
|
+
key() {
|
|
472
|
+
return PublicKey._fromNativeHandle(Native.SenderCertificate_GetKey(this));
|
|
473
|
+
}
|
|
474
|
+
senderE164() {
|
|
475
|
+
return Native.SenderCertificate_GetSenderE164(this);
|
|
476
|
+
}
|
|
477
|
+
senderUuid() {
|
|
478
|
+
return Native.SenderCertificate_GetSenderUuid(this);
|
|
479
|
+
}
|
|
480
|
+
senderDeviceId() {
|
|
481
|
+
return Native.SenderCertificate_GetDeviceId(this);
|
|
482
|
+
}
|
|
483
|
+
serverCertificate() {
|
|
484
|
+
return ServerCertificate._fromNativeHandle(Native.SenderCertificate_GetServerCertificate(this));
|
|
485
|
+
}
|
|
486
|
+
signature() {
|
|
487
|
+
return Native.SenderCertificate_GetSignature(this);
|
|
488
|
+
}
|
|
489
|
+
validate(trustRoot, time) {
|
|
490
|
+
return Native.SenderCertificate_Validate(this, trustRoot, time);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
exports.SenderCertificate = SenderCertificate;
|
|
494
|
+
class SenderKeyDistributionMessage {
|
|
495
|
+
constructor(nativeHandle) {
|
|
496
|
+
this._nativeHandle = nativeHandle;
|
|
497
|
+
}
|
|
498
|
+
static create(sender, distributionId, store) {
|
|
499
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
500
|
+
const handle = yield Native.SenderKeyDistributionMessage_Create(sender, Buffer.from(uuid.parse(distributionId)), store, null);
|
|
501
|
+
return new SenderKeyDistributionMessage(handle);
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
static _new(messageVersion, distributionId, chainId, iteration, chainKey, pk) {
|
|
505
|
+
return new SenderKeyDistributionMessage(Native.SenderKeyDistributionMessage_New(messageVersion, Buffer.from(uuid.parse(distributionId)), chainId, iteration, chainKey, pk));
|
|
506
|
+
}
|
|
507
|
+
static deserialize(buffer) {
|
|
508
|
+
return new SenderKeyDistributionMessage(Native.SenderKeyDistributionMessage_Deserialize(buffer));
|
|
509
|
+
}
|
|
510
|
+
serialize() {
|
|
511
|
+
return Native.SenderKeyDistributionMessage_Serialize(this);
|
|
512
|
+
}
|
|
513
|
+
chainKey() {
|
|
514
|
+
return Native.SenderKeyDistributionMessage_GetChainKey(this);
|
|
515
|
+
}
|
|
516
|
+
iteration() {
|
|
517
|
+
return Native.SenderKeyDistributionMessage_GetIteration(this);
|
|
518
|
+
}
|
|
519
|
+
chainId() {
|
|
520
|
+
return Native.SenderKeyDistributionMessage_GetChainId(this);
|
|
521
|
+
}
|
|
522
|
+
distributionId() {
|
|
523
|
+
return uuid.stringify(Native.SenderKeyDistributionMessage_GetDistributionId(this));
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
exports.SenderKeyDistributionMessage = SenderKeyDistributionMessage;
|
|
527
|
+
function processSenderKeyDistributionMessage(sender, message, store) {
|
|
528
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
529
|
+
yield Native.SenderKeyDistributionMessage_Process(sender, message, store, null);
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
exports.processSenderKeyDistributionMessage = processSenderKeyDistributionMessage;
|
|
533
|
+
class SenderKeyMessage {
|
|
534
|
+
constructor(nativeHandle) {
|
|
535
|
+
this._nativeHandle = nativeHandle;
|
|
536
|
+
}
|
|
537
|
+
static _new(messageVersion, distributionId, chainId, iteration, ciphertext, pk) {
|
|
538
|
+
return new SenderKeyMessage(Native.SenderKeyMessage_New(messageVersion, Buffer.from(uuid.parse(distributionId)), chainId, iteration, ciphertext, pk));
|
|
539
|
+
}
|
|
540
|
+
static deserialize(buffer) {
|
|
541
|
+
return new SenderKeyMessage(Native.SenderKeyMessage_Deserialize(buffer));
|
|
542
|
+
}
|
|
543
|
+
serialize() {
|
|
544
|
+
return Native.SenderKeyMessage_Serialize(this);
|
|
545
|
+
}
|
|
546
|
+
ciphertext() {
|
|
547
|
+
return Native.SenderKeyMessage_GetCipherText(this);
|
|
548
|
+
}
|
|
549
|
+
iteration() {
|
|
550
|
+
return Native.SenderKeyMessage_GetIteration(this);
|
|
551
|
+
}
|
|
552
|
+
chainId() {
|
|
553
|
+
return Native.SenderKeyMessage_GetChainId(this);
|
|
554
|
+
}
|
|
555
|
+
distributionId() {
|
|
556
|
+
return uuid.stringify(Native.SenderKeyMessage_GetDistributionId(this));
|
|
557
|
+
}
|
|
558
|
+
verifySignature(key) {
|
|
559
|
+
return Native.SenderKeyMessage_VerifySignature(this, key);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
exports.SenderKeyMessage = SenderKeyMessage;
|
|
563
|
+
class UnidentifiedSenderMessageContent {
|
|
564
|
+
constructor(nativeHandle) {
|
|
565
|
+
this._nativeHandle = nativeHandle;
|
|
566
|
+
}
|
|
567
|
+
static _fromNativeHandle(nativeHandle) {
|
|
568
|
+
return new UnidentifiedSenderMessageContent(nativeHandle);
|
|
569
|
+
}
|
|
570
|
+
static new(message, sender, contentHint, groupId) {
|
|
571
|
+
return new UnidentifiedSenderMessageContent(Native.UnidentifiedSenderMessageContent_New(message, sender, contentHint, groupId));
|
|
572
|
+
}
|
|
573
|
+
static deserialize(buffer) {
|
|
574
|
+
return new UnidentifiedSenderMessageContent(Native.UnidentifiedSenderMessageContent_Deserialize(buffer));
|
|
575
|
+
}
|
|
576
|
+
serialize() {
|
|
577
|
+
return Native.UnidentifiedSenderMessageContent_Serialize(this);
|
|
578
|
+
}
|
|
579
|
+
contents() {
|
|
580
|
+
return Native.UnidentifiedSenderMessageContent_GetContents(this);
|
|
581
|
+
}
|
|
582
|
+
msgType() {
|
|
583
|
+
return Native.UnidentifiedSenderMessageContent_GetMsgType(this);
|
|
584
|
+
}
|
|
585
|
+
senderCertificate() {
|
|
586
|
+
return SenderCertificate._fromNativeHandle(Native.UnidentifiedSenderMessageContent_GetSenderCert(this));
|
|
587
|
+
}
|
|
588
|
+
contentHint() {
|
|
589
|
+
return Native.UnidentifiedSenderMessageContent_GetContentHint(this);
|
|
590
|
+
}
|
|
591
|
+
groupId() {
|
|
592
|
+
return Native.UnidentifiedSenderMessageContent_GetGroupId(this);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
exports.UnidentifiedSenderMessageContent = UnidentifiedSenderMessageContent;
|
|
596
|
+
class SessionStore {
|
|
597
|
+
_saveSession(name, record) {
|
|
598
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
599
|
+
return this.saveSession(Address_1.ProtocolAddress._fromNativeHandle(name), SessionRecord._fromNativeHandle(record));
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
_getSession(name) {
|
|
603
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
604
|
+
const sess = yield this.getSession(Address_1.ProtocolAddress._fromNativeHandle(name));
|
|
605
|
+
if (sess == null) {
|
|
606
|
+
return null;
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
return sess._nativeHandle;
|
|
610
|
+
}
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
exports.SessionStore = SessionStore;
|
|
615
|
+
class IdentityKeyStore {
|
|
616
|
+
_getIdentityKey() {
|
|
617
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
618
|
+
const key = yield this.getIdentityKey();
|
|
619
|
+
return key._nativeHandle;
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
_getLocalRegistrationId() {
|
|
623
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
624
|
+
return this.getLocalRegistrationId();
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
_saveIdentity(name, key) {
|
|
628
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
629
|
+
return this.saveIdentity(Address_1.ProtocolAddress._fromNativeHandle(name), PublicKey._fromNativeHandle(key));
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
_isTrustedIdentity(name, key, sending) {
|
|
633
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
634
|
+
const direction = sending ? Direction.Sending : Direction.Receiving;
|
|
635
|
+
return this.isTrustedIdentity(Address_1.ProtocolAddress._fromNativeHandle(name), PublicKey._fromNativeHandle(key), direction);
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
_getIdentity(name) {
|
|
639
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
640
|
+
const key = yield this.getIdentity(Address_1.ProtocolAddress._fromNativeHandle(name));
|
|
641
|
+
if (key == null) {
|
|
642
|
+
return Promise.resolve(null);
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
return key._nativeHandle;
|
|
646
|
+
}
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
exports.IdentityKeyStore = IdentityKeyStore;
|
|
651
|
+
class PreKeyStore {
|
|
652
|
+
_savePreKey(id, record) {
|
|
653
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
654
|
+
return this.savePreKey(id, PreKeyRecord._fromNativeHandle(record));
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
_getPreKey(id) {
|
|
658
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
659
|
+
const pk = yield this.getPreKey(id);
|
|
660
|
+
return pk._nativeHandle;
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
_removePreKey(id) {
|
|
664
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
665
|
+
return this.removePreKey(id);
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
exports.PreKeyStore = PreKeyStore;
|
|
670
|
+
class SignedPreKeyStore {
|
|
671
|
+
_saveSignedPreKey(id, record) {
|
|
672
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
673
|
+
return this.saveSignedPreKey(id, SignedPreKeyRecord._fromNativeHandle(record));
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
_getSignedPreKey(id) {
|
|
677
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
678
|
+
const pk = yield this.getSignedPreKey(id);
|
|
679
|
+
return pk._nativeHandle;
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
exports.SignedPreKeyStore = SignedPreKeyStore;
|
|
684
|
+
class SenderKeyStore {
|
|
685
|
+
_saveSenderKey(sender, distributionId, record) {
|
|
686
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
687
|
+
return this.saveSenderKey(Address_1.ProtocolAddress._fromNativeHandle(sender), uuid.stringify(distributionId), SenderKeyRecord._fromNativeHandle(record));
|
|
688
|
+
});
|
|
689
|
+
}
|
|
690
|
+
_getSenderKey(sender, distributionId) {
|
|
691
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
692
|
+
const skr = yield this.getSenderKey(Address_1.ProtocolAddress._fromNativeHandle(sender), uuid.stringify(distributionId));
|
|
693
|
+
if (skr == null) {
|
|
694
|
+
return null;
|
|
695
|
+
}
|
|
696
|
+
else {
|
|
697
|
+
return skr._nativeHandle;
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
exports.SenderKeyStore = SenderKeyStore;
|
|
703
|
+
function groupEncrypt(sender, distributionId, store, message) {
|
|
704
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
705
|
+
return CiphertextMessage._fromNativeHandle(yield Native.GroupCipher_EncryptMessage(sender, Buffer.from(uuid.parse(distributionId)), message, store, null));
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
exports.groupEncrypt = groupEncrypt;
|
|
709
|
+
function groupDecrypt(sender, store, message) {
|
|
710
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
711
|
+
return Native.GroupCipher_DecryptMessage(sender, message, store, null);
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
exports.groupDecrypt = groupDecrypt;
|
|
715
|
+
class SealedSenderDecryptionResult {
|
|
716
|
+
constructor(nativeHandle) {
|
|
717
|
+
this._nativeHandle = nativeHandle;
|
|
718
|
+
}
|
|
719
|
+
static _fromNativeHandle(nativeHandle) {
|
|
720
|
+
return new SealedSenderDecryptionResult(nativeHandle);
|
|
721
|
+
}
|
|
722
|
+
message() {
|
|
723
|
+
return Native.SealedSenderDecryptionResult_Message(this);
|
|
724
|
+
}
|
|
725
|
+
senderE164() {
|
|
726
|
+
return Native.SealedSenderDecryptionResult_GetSenderE164(this);
|
|
727
|
+
}
|
|
728
|
+
senderUuid() {
|
|
729
|
+
return Native.SealedSenderDecryptionResult_GetSenderUuid(this);
|
|
730
|
+
}
|
|
731
|
+
deviceId() {
|
|
732
|
+
return Native.SealedSenderDecryptionResult_GetDeviceId(this);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
exports.SealedSenderDecryptionResult = SealedSenderDecryptionResult;
|
|
736
|
+
class CiphertextMessage {
|
|
737
|
+
constructor(nativeHandle) {
|
|
738
|
+
this._nativeHandle = nativeHandle;
|
|
739
|
+
}
|
|
740
|
+
static _fromNativeHandle(nativeHandle) {
|
|
741
|
+
return new CiphertextMessage(nativeHandle);
|
|
742
|
+
}
|
|
743
|
+
static from(message) {
|
|
744
|
+
return message.asCiphertextMessage();
|
|
745
|
+
}
|
|
746
|
+
serialize() {
|
|
747
|
+
return Native.CiphertextMessage_Serialize(this);
|
|
748
|
+
}
|
|
749
|
+
type() {
|
|
750
|
+
return Native.CiphertextMessage_Type(this);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
exports.CiphertextMessage = CiphertextMessage;
|
|
754
|
+
class PlaintextContent {
|
|
755
|
+
constructor(nativeHandle) {
|
|
756
|
+
this._nativeHandle = nativeHandle;
|
|
757
|
+
}
|
|
758
|
+
static deserialize(buffer) {
|
|
759
|
+
return new PlaintextContent(Native.PlaintextContent_Deserialize(buffer));
|
|
760
|
+
}
|
|
761
|
+
static from(message) {
|
|
762
|
+
return new PlaintextContent(Native.PlaintextContent_FromDecryptionErrorMessage(message));
|
|
763
|
+
}
|
|
764
|
+
serialize() {
|
|
765
|
+
return Native.PlaintextContent_Serialize(this);
|
|
766
|
+
}
|
|
767
|
+
body() {
|
|
768
|
+
return Native.PlaintextContent_GetBody(this);
|
|
769
|
+
}
|
|
770
|
+
asCiphertextMessage() {
|
|
771
|
+
return CiphertextMessage._fromNativeHandle(Native.CiphertextMessage_FromPlaintextContent(this));
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
exports.PlaintextContent = PlaintextContent;
|
|
775
|
+
class DecryptionErrorMessage {
|
|
776
|
+
constructor(nativeHandle) {
|
|
777
|
+
this._nativeHandle = nativeHandle;
|
|
778
|
+
}
|
|
779
|
+
static _fromNativeHandle(nativeHandle) {
|
|
780
|
+
return new DecryptionErrorMessage(nativeHandle);
|
|
781
|
+
}
|
|
782
|
+
static forOriginal(bytes, type, timestamp, originalSenderDeviceId) {
|
|
783
|
+
return new DecryptionErrorMessage(Native.DecryptionErrorMessage_ForOriginalMessage(bytes, type, timestamp, originalSenderDeviceId));
|
|
784
|
+
}
|
|
785
|
+
static deserialize(buffer) {
|
|
786
|
+
return new DecryptionErrorMessage(Native.DecryptionErrorMessage_Deserialize(buffer));
|
|
787
|
+
}
|
|
788
|
+
static extractFromSerializedBody(buffer) {
|
|
789
|
+
return new DecryptionErrorMessage(Native.DecryptionErrorMessage_ExtractFromSerializedContent(buffer));
|
|
790
|
+
}
|
|
791
|
+
serialize() {
|
|
792
|
+
return Native.DecryptionErrorMessage_Serialize(this);
|
|
793
|
+
}
|
|
794
|
+
timestamp() {
|
|
795
|
+
return Native.DecryptionErrorMessage_GetTimestamp(this);
|
|
796
|
+
}
|
|
797
|
+
deviceId() {
|
|
798
|
+
return Native.DecryptionErrorMessage_GetDeviceId(this);
|
|
799
|
+
}
|
|
800
|
+
ratchetKey() {
|
|
801
|
+
const keyHandle = Native.DecryptionErrorMessage_GetRatchetKey(this);
|
|
802
|
+
if (keyHandle) {
|
|
803
|
+
return PublicKey._fromNativeHandle(keyHandle);
|
|
804
|
+
}
|
|
805
|
+
else {
|
|
806
|
+
return undefined;
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
exports.DecryptionErrorMessage = DecryptionErrorMessage;
|
|
811
|
+
function processPreKeyBundle(bundle, address, sessionStore, identityStore) {
|
|
812
|
+
return Native.SessionBuilder_ProcessPreKeyBundle(bundle, address, sessionStore, identityStore, null);
|
|
813
|
+
}
|
|
814
|
+
exports.processPreKeyBundle = processPreKeyBundle;
|
|
815
|
+
function signalEncrypt(message, address, sessionStore, identityStore) {
|
|
816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
817
|
+
return CiphertextMessage._fromNativeHandle(yield Native.SessionCipher_EncryptMessage(message, address, sessionStore, identityStore, null));
|
|
818
|
+
});
|
|
819
|
+
}
|
|
820
|
+
exports.signalEncrypt = signalEncrypt;
|
|
821
|
+
function signalDecrypt(message, address, sessionStore, identityStore) {
|
|
822
|
+
return Native.SessionCipher_DecryptSignalMessage(message, address, sessionStore, identityStore, null);
|
|
823
|
+
}
|
|
824
|
+
exports.signalDecrypt = signalDecrypt;
|
|
825
|
+
function signalDecryptPreKey(message, address, sessionStore, identityStore, prekeyStore, signedPrekeyStore) {
|
|
826
|
+
return Native.SessionCipher_DecryptPreKeySignalMessage(message, address, sessionStore, identityStore, prekeyStore, signedPrekeyStore, null);
|
|
827
|
+
}
|
|
828
|
+
exports.signalDecryptPreKey = signalDecryptPreKey;
|
|
829
|
+
function sealedSenderEncryptMessage(message, address, senderCert, sessionStore, identityStore) {
|
|
830
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
831
|
+
const ciphertext = yield signalEncrypt(message, address, sessionStore, identityStore);
|
|
832
|
+
const usmc = UnidentifiedSenderMessageContent.new(ciphertext, senderCert, ContentHint.Default, null);
|
|
833
|
+
return yield sealedSenderEncrypt(usmc, address, identityStore);
|
|
834
|
+
});
|
|
835
|
+
}
|
|
836
|
+
exports.sealedSenderEncryptMessage = sealedSenderEncryptMessage;
|
|
837
|
+
function sealedSenderEncrypt(content, address, identityStore) {
|
|
838
|
+
return Native.SealedSender_Encrypt(address, content, identityStore, null);
|
|
839
|
+
}
|
|
840
|
+
exports.sealedSenderEncrypt = sealedSenderEncrypt;
|
|
841
|
+
function sealedSenderMultiRecipientEncrypt(content, recipients, identityStore, sessionStore) {
|
|
842
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
843
|
+
const recipientSessions = yield sessionStore.getExistingSessions(recipients);
|
|
844
|
+
return yield Native.SealedSender_MultiRecipientEncrypt(recipients, recipientSessions, content, identityStore, null);
|
|
845
|
+
});
|
|
846
|
+
}
|
|
847
|
+
exports.sealedSenderMultiRecipientEncrypt = sealedSenderMultiRecipientEncrypt;
|
|
848
|
+
// For testing only
|
|
849
|
+
function sealedSenderMultiRecipientMessageForSingleRecipient(message) {
|
|
850
|
+
return Native.SealedSender_MultiRecipientMessageForSingleRecipient(message);
|
|
851
|
+
}
|
|
852
|
+
exports.sealedSenderMultiRecipientMessageForSingleRecipient = sealedSenderMultiRecipientMessageForSingleRecipient;
|
|
853
|
+
function sealedSenderDecryptMessage(message, trustRoot, timestamp, localE164, localUuid, localDeviceId, sessionStore, identityStore, prekeyStore, signedPrekeyStore) {
|
|
854
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
855
|
+
const ssdr = yield Native.SealedSender_DecryptMessage(message, trustRoot, timestamp, localE164, localUuid, localDeviceId, sessionStore, identityStore, prekeyStore, signedPrekeyStore);
|
|
856
|
+
return SealedSenderDecryptionResult._fromNativeHandle(ssdr);
|
|
857
|
+
});
|
|
858
|
+
}
|
|
859
|
+
exports.sealedSenderDecryptMessage = sealedSenderDecryptMessage;
|
|
860
|
+
function sealedSenderDecryptToUsmc(message, identityStore) {
|
|
861
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
862
|
+
const usmc = yield Native.SealedSender_DecryptToUsmc(message, identityStore, null);
|
|
863
|
+
return UnidentifiedSenderMessageContent._fromNativeHandle(usmc);
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
exports.sealedSenderDecryptToUsmc = sealedSenderDecryptToUsmc;
|
|
867
|
+
class HsmEnclaveClient {
|
|
868
|
+
constructor(nativeHandle) {
|
|
869
|
+
this._nativeHandle = nativeHandle;
|
|
870
|
+
}
|
|
871
|
+
static new(public_key, code_hashes) {
|
|
872
|
+
code_hashes.forEach(hash => {
|
|
873
|
+
if (hash.length != 32) {
|
|
874
|
+
throw new Error('code hash length must be 32');
|
|
875
|
+
}
|
|
876
|
+
});
|
|
877
|
+
const concat_hashes = Buffer.concat(code_hashes);
|
|
878
|
+
return new HsmEnclaveClient(Native.HsmEnclaveClient_New(public_key, concat_hashes));
|
|
879
|
+
}
|
|
880
|
+
initialRequest() {
|
|
881
|
+
return Native.HsmEnclaveClient_InitialRequest(this);
|
|
882
|
+
}
|
|
883
|
+
completeHandshake(buffer) {
|
|
884
|
+
return Native.HsmEnclaveClient_CompleteHandshake(this, buffer);
|
|
885
|
+
}
|
|
886
|
+
establishedSend(buffer) {
|
|
887
|
+
return Native.HsmEnclaveClient_EstablishedSend(this, buffer);
|
|
888
|
+
}
|
|
889
|
+
establishedRecv(buffer) {
|
|
890
|
+
return Native.HsmEnclaveClient_EstablishedRecv(this, buffer);
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
exports.HsmEnclaveClient = HsmEnclaveClient;
|
|
894
|
+
var LogLevel;
|
|
895
|
+
(function (LogLevel) {
|
|
896
|
+
LogLevel[LogLevel["Error"] = 1] = "Error";
|
|
897
|
+
LogLevel[LogLevel["Warn"] = 2] = "Warn";
|
|
898
|
+
LogLevel[LogLevel["Info"] = 3] = "Info";
|
|
899
|
+
LogLevel[LogLevel["Debug"] = 4] = "Debug";
|
|
900
|
+
LogLevel[LogLevel["Trace"] = 5] = "Trace";
|
|
901
|
+
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
902
|
+
function initLogger(maxLevel, callback) {
|
|
903
|
+
let nativeMaxLevel;
|
|
904
|
+
switch (maxLevel) {
|
|
905
|
+
case LogLevel.Error:
|
|
906
|
+
nativeMaxLevel = 1 /* Error */;
|
|
907
|
+
break;
|
|
908
|
+
case LogLevel.Warn:
|
|
909
|
+
nativeMaxLevel = 2 /* Warn */;
|
|
910
|
+
break;
|
|
911
|
+
case LogLevel.Info:
|
|
912
|
+
nativeMaxLevel = 3 /* Info */;
|
|
913
|
+
break;
|
|
914
|
+
case LogLevel.Debug:
|
|
915
|
+
nativeMaxLevel = 4 /* Debug */;
|
|
916
|
+
break;
|
|
917
|
+
case LogLevel.Trace:
|
|
918
|
+
nativeMaxLevel = 5 /* Trace */;
|
|
919
|
+
break;
|
|
920
|
+
}
|
|
921
|
+
Native.initLogger(nativeMaxLevel, (nativeLevel, target, file, line, message) => {
|
|
922
|
+
let level;
|
|
923
|
+
switch (nativeLevel) {
|
|
924
|
+
case 1 /* Error */:
|
|
925
|
+
level = LogLevel.Error;
|
|
926
|
+
break;
|
|
927
|
+
case 2 /* Warn */:
|
|
928
|
+
level = LogLevel.Warn;
|
|
929
|
+
break;
|
|
930
|
+
case 3 /* Info */:
|
|
931
|
+
level = LogLevel.Info;
|
|
932
|
+
break;
|
|
933
|
+
case 4 /* Debug */:
|
|
934
|
+
level = LogLevel.Debug;
|
|
935
|
+
break;
|
|
936
|
+
case 5 /* Trace */:
|
|
937
|
+
level = LogLevel.Trace;
|
|
938
|
+
break;
|
|
939
|
+
default:
|
|
940
|
+
callback(LogLevel.Warn, 'signal-client', 'index.ts', 0, 'unknown log level ' + nativeLevel + '; treating as error');
|
|
941
|
+
level = LogLevel.Error;
|
|
942
|
+
break;
|
|
943
|
+
}
|
|
944
|
+
callback(level, target, file, line, message);
|
|
945
|
+
});
|
|
946
|
+
}
|
|
947
|
+
exports.initLogger = initLogger;
|
|
948
|
+
//# sourceMappingURL=index.js.map
|