@signalapp/libsignal-client 0.16.0 → 0.18.1

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 (65) hide show
  1. package/Native.d.ts +31 -8
  2. package/dist/index.d.ts +9 -13
  3. package/dist/index.js +27 -19
  4. package/dist/zkgroup/NotarySignature.d.ts +1 -0
  5. package/dist/zkgroup/ServerPublicParams.d.ts +1 -0
  6. package/dist/zkgroup/ServerSecretParams.d.ts +1 -0
  7. package/dist/zkgroup/ServerSecretParams.js +3 -3
  8. package/dist/zkgroup/auth/AuthCredential.d.ts +1 -0
  9. package/dist/zkgroup/auth/AuthCredentialPresentation.d.ts +3 -1
  10. package/dist/zkgroup/auth/AuthCredentialPresentation.js +9 -2
  11. package/dist/zkgroup/auth/AuthCredentialResponse.d.ts +1 -0
  12. package/dist/zkgroup/auth/AuthCredentialWithPni.d.ts +6 -0
  13. package/dist/zkgroup/auth/AuthCredentialWithPni.js +15 -0
  14. package/dist/zkgroup/auth/AuthCredentialWithPniResponse.d.ts +6 -0
  15. package/dist/zkgroup/auth/AuthCredentialWithPniResponse.js +15 -0
  16. package/dist/zkgroup/auth/ClientZkAuthOperations.d.ts +10 -0
  17. package/dist/zkgroup/auth/ClientZkAuthOperations.js +17 -1
  18. package/dist/zkgroup/auth/ServerZkAuthOperations.d.ts +3 -0
  19. package/dist/zkgroup/auth/ServerZkAuthOperations.js +9 -1
  20. package/dist/zkgroup/groups/GroupIdentifier.d.ts +1 -0
  21. package/dist/zkgroup/groups/GroupMasterKey.d.ts +1 -0
  22. package/dist/zkgroup/groups/GroupPublicParams.d.ts +1 -0
  23. package/dist/zkgroup/groups/GroupSecretParams.d.ts +1 -0
  24. package/dist/zkgroup/groups/GroupSecretParams.js +3 -3
  25. package/dist/zkgroup/groups/ProfileKeyCiphertext.d.ts +1 -0
  26. package/dist/zkgroup/groups/UuidCiphertext.d.ts +1 -0
  27. package/dist/zkgroup/index.d.ts +4 -0
  28. package/dist/zkgroup/index.js +9 -1
  29. package/dist/zkgroup/profiles/ClientZkProfileOperations.d.ts +20 -0
  30. package/dist/zkgroup/profiles/ClientZkProfileOperations.js +27 -1
  31. package/dist/zkgroup/profiles/ExpiringProfileKeyCredential.d.ts +7 -0
  32. package/dist/zkgroup/profiles/ExpiringProfileKeyCredential.js +19 -0
  33. package/dist/zkgroup/profiles/ExpiringProfileKeyCredentialResponse.d.ts +6 -0
  34. package/dist/zkgroup/profiles/ExpiringProfileKeyCredentialResponse.js +15 -0
  35. package/dist/zkgroup/profiles/PniCredential.d.ts +1 -0
  36. package/dist/zkgroup/profiles/PniCredentialPresentation.d.ts +1 -0
  37. package/dist/zkgroup/profiles/PniCredentialRequestContext.d.ts +1 -0
  38. package/dist/zkgroup/profiles/PniCredentialResponse.d.ts +1 -0
  39. package/dist/zkgroup/profiles/ProfileKey.d.ts +1 -0
  40. package/dist/zkgroup/profiles/ProfileKeyCommitment.d.ts +1 -0
  41. package/dist/zkgroup/profiles/ProfileKeyCredential.d.ts +1 -0
  42. package/dist/zkgroup/profiles/ProfileKeyCredentialPresentation.d.ts +1 -0
  43. package/dist/zkgroup/profiles/ProfileKeyCredentialRequest.d.ts +1 -0
  44. package/dist/zkgroup/profiles/ProfileKeyCredentialRequestContext.d.ts +1 -0
  45. package/dist/zkgroup/profiles/ProfileKeyCredentialResponse.d.ts +1 -0
  46. package/dist/zkgroup/profiles/ProfileKeyVersion.d.ts +1 -0
  47. package/dist/zkgroup/profiles/ServerZkProfileOperations.d.ts +13 -1
  48. package/dist/zkgroup/profiles/ServerZkProfileOperations.js +20 -3
  49. package/dist/zkgroup/receipts/ReceiptCredential.d.ts +2 -1
  50. package/dist/zkgroup/receipts/ReceiptCredential.js +1 -1
  51. package/dist/zkgroup/receipts/ReceiptCredentialPresentation.d.ts +2 -1
  52. package/dist/zkgroup/receipts/ReceiptCredentialPresentation.js +1 -1
  53. package/dist/zkgroup/receipts/ReceiptCredentialRequest.d.ts +1 -0
  54. package/dist/zkgroup/receipts/ReceiptCredentialRequestContext.d.ts +1 -0
  55. package/dist/zkgroup/receipts/ReceiptCredentialResponse.d.ts +1 -0
  56. package/dist/zkgroup/receipts/ReceiptSerial.d.ts +1 -0
  57. package/dist/zkgroup/receipts/ServerZkReceiptOperations.d.ts +2 -2
  58. package/dist/zkgroup/receipts/ServerZkReceiptOperations.js +1 -1
  59. package/package.json +5 -7
  60. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  61. package/prebuilds/darwin-x64/node.napi.node +0 -0
  62. package/prebuilds/linux-arm64/node.napi.node +0 -0
  63. package/prebuilds/linux-x64/node.napi.node +0 -0
  64. package/prebuilds/win32-arm64/node.napi.node +0 -0
  65. package/prebuilds/win32-x64/node.napi.node +0 -0
@@ -4,7 +4,7 @@
4
4
  // SPDX-License-Identifier: AGPL-3.0-only
5
5
  //
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ReceiptSerial = exports.ReceiptCredentialResponse = exports.ReceiptCredentialRequestContext = exports.ReceiptCredentialRequest = exports.ReceiptCredentialPresentation = exports.ReceiptCredential = exports.ServerZkReceiptOperations = exports.ClientZkReceiptOperations = exports.PniCredentialResponse = exports.PniCredentialRequestContext = exports.PniCredentialPresentation = exports.PniCredential = exports.ProfileKeyVersion = exports.ProfileKeyCredentialResponse = exports.ProfileKeyCredentialRequestContext = exports.ProfileKeyCredentialRequest = exports.ProfileKeyCredentialPresentation = exports.ProfileKeyCredential = exports.ProfileKeyCommitment = exports.ProfileKey = exports.ServerZkProfileOperations = exports.ClientZkProfileOperations = exports.UuidCiphertext = exports.ProfileKeyCiphertext = exports.GroupSecretParams = exports.GroupPublicParams = exports.GroupMasterKey = exports.GroupIdentifier = exports.ClientZkGroupCipher = exports.AuthCredentialPresentation = exports.AuthCredentialResponse = exports.AuthCredential = exports.ServerZkAuthOperations = exports.ClientZkAuthOperations = exports.NotarySignature = exports.ServerSecretParams = exports.ServerPublicParams = void 0;
7
+ exports.ReceiptSerial = exports.ReceiptCredentialResponse = exports.ReceiptCredentialRequestContext = exports.ReceiptCredentialRequest = exports.ReceiptCredentialPresentation = exports.ReceiptCredential = exports.ServerZkReceiptOperations = exports.ClientZkReceiptOperations = exports.PniCredentialResponse = exports.PniCredentialRequestContext = exports.PniCredentialPresentation = exports.PniCredential = exports.ExpiringProfileKeyCredentialResponse = exports.ExpiringProfileKeyCredential = exports.ProfileKeyVersion = exports.ProfileKeyCredentialResponse = exports.ProfileKeyCredentialRequestContext = exports.ProfileKeyCredentialRequest = exports.ProfileKeyCredentialPresentation = exports.ProfileKeyCredential = exports.ProfileKeyCommitment = exports.ProfileKey = exports.ServerZkProfileOperations = exports.ClientZkProfileOperations = exports.UuidCiphertext = exports.ProfileKeyCiphertext = exports.GroupSecretParams = exports.GroupPublicParams = exports.GroupMasterKey = exports.GroupIdentifier = exports.ClientZkGroupCipher = exports.AuthCredentialWithPniResponse = exports.AuthCredentialWithPni = exports.AuthCredentialPresentation = exports.AuthCredentialResponse = exports.AuthCredential = exports.ServerZkAuthOperations = exports.ClientZkAuthOperations = exports.NotarySignature = exports.ServerSecretParams = exports.ServerPublicParams = void 0;
8
8
  // Root
9
9
  var ServerPublicParams_1 = require("./ServerPublicParams");
10
10
  Object.defineProperty(exports, "ServerPublicParams", { enumerable: true, get: function () { return ServerPublicParams_1.default; } });
@@ -23,6 +23,10 @@ var AuthCredentialResponse_1 = require("./auth/AuthCredentialResponse");
23
23
  Object.defineProperty(exports, "AuthCredentialResponse", { enumerable: true, get: function () { return AuthCredentialResponse_1.default; } });
24
24
  var AuthCredentialPresentation_1 = require("./auth/AuthCredentialPresentation");
25
25
  Object.defineProperty(exports, "AuthCredentialPresentation", { enumerable: true, get: function () { return AuthCredentialPresentation_1.default; } });
26
+ var AuthCredentialWithPni_1 = require("./auth/AuthCredentialWithPni");
27
+ Object.defineProperty(exports, "AuthCredentialWithPni", { enumerable: true, get: function () { return AuthCredentialWithPni_1.default; } });
28
+ var AuthCredentialWithPniResponse_1 = require("./auth/AuthCredentialWithPniResponse");
29
+ Object.defineProperty(exports, "AuthCredentialWithPniResponse", { enumerable: true, get: function () { return AuthCredentialWithPniResponse_1.default; } });
26
30
  // Groups
27
31
  var ClientZkGroupCipher_1 = require("./groups/ClientZkGroupCipher");
28
32
  Object.defineProperty(exports, "ClientZkGroupCipher", { enumerable: true, get: function () { return ClientZkGroupCipher_1.default; } });
@@ -59,6 +63,10 @@ var ProfileKeyCredentialResponse_1 = require("./profiles/ProfileKeyCredentialRes
59
63
  Object.defineProperty(exports, "ProfileKeyCredentialResponse", { enumerable: true, get: function () { return ProfileKeyCredentialResponse_1.default; } });
60
64
  var ProfileKeyVersion_1 = require("./profiles/ProfileKeyVersion");
61
65
  Object.defineProperty(exports, "ProfileKeyVersion", { enumerable: true, get: function () { return ProfileKeyVersion_1.default; } });
66
+ var ExpiringProfileKeyCredential_1 = require("./profiles/ExpiringProfileKeyCredential");
67
+ Object.defineProperty(exports, "ExpiringProfileKeyCredential", { enumerable: true, get: function () { return ExpiringProfileKeyCredential_1.default; } });
68
+ var ExpiringProfileKeyCredentialResponse_1 = require("./profiles/ExpiringProfileKeyCredentialResponse");
69
+ Object.defineProperty(exports, "ExpiringProfileKeyCredentialResponse", { enumerable: true, get: function () { return ExpiringProfileKeyCredentialResponse_1.default; } });
62
70
  var PniCredential_1 = require("./profiles/PniCredential");
63
71
  Object.defineProperty(exports, "PniCredential", { enumerable: true, get: function () { return PniCredential_1.default; } });
64
72
  var PniCredentialPresentation_1 = require("./profiles/PniCredentialPresentation");
@@ -1,6 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import ServerPublicParams from '../ServerPublicParams';
3
3
  import GroupSecretParams from '../groups/GroupSecretParams';
4
+ import ExpiringProfileKeyCredential from './ExpiringProfileKeyCredential';
5
+ import ExpiringProfileKeyCredentialResponse from './ExpiringProfileKeyCredentialResponse';
4
6
  import PniCredential from './PniCredential';
5
7
  import PniCredentialPresentation from './PniCredentialPresentation';
6
8
  import PniCredentialRequestContext from './PniCredentialRequestContext';
@@ -16,12 +18,30 @@ export default class ClientZkProfileOperations {
16
18
  constructor(serverPublicParams: ServerPublicParams);
17
19
  createProfileKeyCredentialRequestContext(uuid: UUIDType, profileKey: ProfileKey): ProfileKeyCredentialRequestContext;
18
20
  createProfileKeyCredentialRequestContextWithRandom(random: Buffer, uuid: UUIDType, profileKey: ProfileKey): ProfileKeyCredentialRequestContext;
21
+ /**
22
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
23
+ */
19
24
  createPniCredentialRequestContext(aci: UUIDType, pni: UUIDType, profileKey: ProfileKey): PniCredentialRequestContext;
25
+ /**
26
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
27
+ */
20
28
  createPniCredentialRequestContextWithRandom(random: Buffer, aci: UUIDType, pni: UUIDType, profileKey: ProfileKey): PniCredentialRequestContext;
21
29
  receiveProfileKeyCredential(profileKeyCredentialRequestContext: ProfileKeyCredentialRequestContext, profileKeyCredentialResponse: ProfileKeyCredentialResponse): ProfileKeyCredential;
30
+ receiveExpiringProfileKeyCredential(profileKeyCredentialRequestContext: ProfileKeyCredentialRequestContext, profileKeyCredentialResponse: ExpiringProfileKeyCredentialResponse, now?: Date): ExpiringProfileKeyCredential;
31
+ /**
32
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
33
+ */
22
34
  receivePniCredential(requestContext: PniCredentialRequestContext, response: PniCredentialResponse): PniCredential;
23
35
  createProfileKeyCredentialPresentation(groupSecretParams: GroupSecretParams, profileKeyCredential: ProfileKeyCredential): ProfileKeyCredentialPresentation;
24
36
  createProfileKeyCredentialPresentationWithRandom(random: Buffer, groupSecretParams: GroupSecretParams, profileKeyCredential: ProfileKeyCredential): ProfileKeyCredentialPresentation;
37
+ createExpiringProfileKeyCredentialPresentation(groupSecretParams: GroupSecretParams, profileKeyCredential: ExpiringProfileKeyCredential): ProfileKeyCredentialPresentation;
38
+ createExpiringProfileKeyCredentialPresentationWithRandom(random: Buffer, groupSecretParams: GroupSecretParams, profileKeyCredential: ExpiringProfileKeyCredential): ProfileKeyCredentialPresentation;
39
+ /**
40
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
41
+ */
25
42
  createPniCredentialPresentation(groupSecretParams: GroupSecretParams, credential: PniCredential): PniCredentialPresentation;
43
+ /**
44
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
45
+ */
26
46
  createPniCredentialPresentationWithRandom(random: Buffer, groupSecretParams: GroupSecretParams, credential: PniCredential): PniCredentialPresentation;
27
47
  }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  //
3
- // Copyright 2020-2021 Signal Messenger, LLC.
3
+ // Copyright 2020-2022 Signal Messenger, LLC.
4
4
  // SPDX-License-Identifier: AGPL-3.0-only
5
5
  //
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const crypto_1 = require("crypto");
8
8
  const Constants_1 = require("../internal/Constants");
9
9
  const Native = require("../../../Native");
10
+ const ExpiringProfileKeyCredential_1 = require("./ExpiringProfileKeyCredential");
10
11
  const PniCredential_1 = require("./PniCredential");
11
12
  const PniCredentialPresentation_1 = require("./PniCredentialPresentation");
12
13
  const PniCredentialRequestContext_1 = require("./PniCredentialRequestContext");
@@ -25,16 +26,28 @@ class ClientZkProfileOperations {
25
26
  createProfileKeyCredentialRequestContextWithRandom(random, uuid, profileKey) {
26
27
  return new ProfileKeyCredentialRequestContext_1.default(Native.ServerPublicParams_CreateProfileKeyCredentialRequestContextDeterministic(this.serverPublicParams.getContents(), random, (0, UUIDUtil_1.fromUUID)(uuid), profileKey.getContents()));
27
28
  }
29
+ /**
30
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
31
+ */
28
32
  createPniCredentialRequestContext(aci, pni, profileKey) {
29
33
  const random = (0, crypto_1.randomBytes)(Constants_1.RANDOM_LENGTH);
30
34
  return this.createPniCredentialRequestContextWithRandom(random, aci, pni, profileKey);
31
35
  }
36
+ /**
37
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
38
+ */
32
39
  createPniCredentialRequestContextWithRandom(random, aci, pni, profileKey) {
33
40
  return new PniCredentialRequestContext_1.default(Native.ServerPublicParams_CreatePniCredentialRequestContextDeterministic(this.serverPublicParams.getContents(), random, (0, UUIDUtil_1.fromUUID)(aci), (0, UUIDUtil_1.fromUUID)(pni), profileKey.getContents()));
34
41
  }
35
42
  receiveProfileKeyCredential(profileKeyCredentialRequestContext, profileKeyCredentialResponse) {
36
43
  return new ProfileKeyCredential_1.default(Native.ServerPublicParams_ReceiveProfileKeyCredential(this.serverPublicParams.getContents(), profileKeyCredentialRequestContext.getContents(), profileKeyCredentialResponse.getContents()));
37
44
  }
45
+ receiveExpiringProfileKeyCredential(profileKeyCredentialRequestContext, profileKeyCredentialResponse, now = new Date()) {
46
+ return new ExpiringProfileKeyCredential_1.default(Native.ServerPublicParams_ReceiveExpiringProfileKeyCredential(this.serverPublicParams.getContents(), profileKeyCredentialRequestContext.getContents(), profileKeyCredentialResponse.getContents(), Math.floor(now.getTime() / 1000)));
47
+ }
48
+ /**
49
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
50
+ */
38
51
  receivePniCredential(requestContext, response) {
39
52
  return new PniCredential_1.default(Native.ServerPublicParams_ReceivePniCredential(this.serverPublicParams.getContents(), requestContext.getContents(), response.getContents()));
40
53
  }
@@ -45,10 +58,23 @@ class ClientZkProfileOperations {
45
58
  createProfileKeyCredentialPresentationWithRandom(random, groupSecretParams, profileKeyCredential) {
46
59
  return new ProfileKeyCredentialPresentation_1.default(Native.ServerPublicParams_CreateProfileKeyCredentialPresentationDeterministic(this.serverPublicParams.getContents(), random, groupSecretParams.getContents(), profileKeyCredential.getContents()));
47
60
  }
61
+ createExpiringProfileKeyCredentialPresentation(groupSecretParams, profileKeyCredential) {
62
+ const random = (0, crypto_1.randomBytes)(Constants_1.RANDOM_LENGTH);
63
+ return this.createExpiringProfileKeyCredentialPresentationWithRandom(random, groupSecretParams, profileKeyCredential);
64
+ }
65
+ createExpiringProfileKeyCredentialPresentationWithRandom(random, groupSecretParams, profileKeyCredential) {
66
+ return new ProfileKeyCredentialPresentation_1.default(Native.ServerPublicParams_CreateExpiringProfileKeyCredentialPresentationDeterministic(this.serverPublicParams.getContents(), random, groupSecretParams.getContents(), profileKeyCredential.getContents()));
67
+ }
68
+ /**
69
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
70
+ */
48
71
  createPniCredentialPresentation(groupSecretParams, credential) {
49
72
  const random = (0, crypto_1.randomBytes)(Constants_1.RANDOM_LENGTH);
50
73
  return this.createPniCredentialPresentationWithRandom(random, groupSecretParams, credential);
51
74
  }
75
+ /**
76
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
77
+ */
52
78
  createPniCredentialPresentationWithRandom(random, groupSecretParams, credential) {
53
79
  return new PniCredentialPresentation_1.default(Native.ServerPublicParams_CreatePniCredentialPresentationDeterministic(this.serverPublicParams.getContents(), random, groupSecretParams.getContents(), credential.getContents()));
54
80
  }
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import ByteArray from '../internal/ByteArray';
3
+ export default class ExpiringProfileKeyCredential extends ByteArray {
4
+ private readonly __type?;
5
+ constructor(contents: Buffer);
6
+ getExpirationTime(): Date;
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 Signal Messenger, LLC.
4
+ // SPDX-License-Identifier: AGPL-3.0-only
5
+ //
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const ByteArray_1 = require("../internal/ByteArray");
8
+ const Native = require("../../../Native");
9
+ class ExpiringProfileKeyCredential extends ByteArray_1.default {
10
+ constructor(contents) {
11
+ super(contents, Native.ExpiringProfileKeyCredential_CheckValidContents);
12
+ }
13
+ getExpirationTime() {
14
+ return new Date(1000 *
15
+ Native.ExpiringProfileKeyCredential_GetExpirationTime(this.contents));
16
+ }
17
+ }
18
+ exports.default = ExpiringProfileKeyCredential;
19
+ //# sourceMappingURL=ExpiringProfileKeyCredential.js.map
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import ByteArray from '../internal/ByteArray';
3
+ export default class ExpiringProfileKeyCredentialResponse extends ByteArray {
4
+ private readonly __type?;
5
+ constructor(contents: Buffer);
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 Signal Messenger, LLC.
4
+ // SPDX-License-Identifier: AGPL-3.0-only
5
+ //
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const ByteArray_1 = require("../internal/ByteArray");
8
+ const Native = require("../../../Native");
9
+ class ExpiringProfileKeyCredentialResponse extends ByteArray_1.default {
10
+ constructor(contents) {
11
+ super(contents, Native.ExpiringProfileKeyCredentialResponse_CheckValidContents);
12
+ }
13
+ }
14
+ exports.default = ExpiringProfileKeyCredentialResponse;
15
+ //# sourceMappingURL=ExpiringProfileKeyCredentialResponse.js.map
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class PniCredential extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -3,6 +3,7 @@ import ByteArray from '../internal/ByteArray';
3
3
  import UuidCiphertext from '../groups/UuidCiphertext';
4
4
  import ProfileKeyCiphertext from '../groups/ProfileKeyCiphertext';
5
5
  export default class PniCredentialPresentation extends ByteArray {
6
+ private readonly __type?;
6
7
  constructor(contents: Buffer);
7
8
  getAciCiphertext(): UuidCiphertext;
8
9
  getPniCiphertext(): UuidCiphertext;
@@ -2,6 +2,7 @@
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  import ProfileKeyCredentialRequest from './ProfileKeyCredentialRequest';
4
4
  export default class PniCredentialRequestContext extends ByteArray {
5
+ private readonly __type?;
5
6
  constructor(contents: Buffer);
6
7
  getRequest(): ProfileKeyCredentialRequest;
7
8
  }
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class PniCredentialResponse extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -4,6 +4,7 @@ import ProfileKeyCommitment from './ProfileKeyCommitment';
4
4
  import ProfileKeyVersion from './ProfileKeyVersion';
5
5
  import { UUIDType } from '../internal/UUIDUtil';
6
6
  export default class ProfileKey extends ByteArray {
7
+ private readonly __type?;
7
8
  static SIZE: number;
8
9
  constructor(contents: Buffer);
9
10
  getCommitment(uuid: UUIDType): ProfileKeyCommitment;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ProfileKeyCommitment extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ProfileKeyCredential extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -3,6 +3,7 @@ import ByteArray from '../internal/ByteArray';
3
3
  import UuidCiphertext from '../groups/UuidCiphertext';
4
4
  import ProfileKeyCiphertext from '../groups/ProfileKeyCiphertext';
5
5
  export default class ProfileKeyCredentialPresentation extends ByteArray {
6
+ private readonly __type?;
6
7
  constructor(contents: Buffer);
7
8
  getUuidCiphertext(): UuidCiphertext;
8
9
  getProfileKeyCiphertext(): ProfileKeyCiphertext;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ProfileKeyCredentialRequest extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -2,6 +2,7 @@
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  import ProfileKeyCredentialRequest from './ProfileKeyCredentialRequest';
4
4
  export default class ProfileKeyCredentialRequestContext extends ByteArray {
5
+ private readonly __type?;
5
6
  constructor(contents: Buffer);
6
7
  getRequest(): ProfileKeyCredentialRequest;
7
8
  }
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ProfileKeyCredentialResponse extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ProfileKeyVersion extends ByteArray {
4
+ private readonly __type?;
4
5
  static SIZE: number;
5
6
  constructor(contents: Buffer | string);
6
7
  toString(): string;
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import ServerSecretParams from '../ServerSecretParams';
3
3
  import GroupPublicParams from '../groups/GroupPublicParams';
4
+ import ExpiringProfileKeyCredentialResponse from './ExpiringProfileKeyCredentialResponse';
4
5
  import PniCredentialPresentation from './PniCredentialPresentation';
5
6
  import PniCredentialResponse from './PniCredentialResponse';
6
7
  import ProfileKeyCommitment from './ProfileKeyCommitment';
@@ -13,8 +14,19 @@ export default class ServerZkProfileOperations {
13
14
  constructor(serverSecretParams: ServerSecretParams);
14
15
  issueProfileKeyCredential(profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUIDType, profileKeyCommitment: ProfileKeyCommitment): ProfileKeyCredentialResponse;
15
16
  issueProfileKeyCredentialWithRandom(random: Buffer, profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUIDType, profileKeyCommitment: ProfileKeyCommitment): ProfileKeyCredentialResponse;
17
+ issueExpiringProfileKeyCredential(profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUIDType, profileKeyCommitment: ProfileKeyCommitment, expirationInSeconds: number): ExpiringProfileKeyCredentialResponse;
18
+ issueExpiringProfileKeyCredentialWithRandom(random: Buffer, profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUIDType, profileKeyCommitment: ProfileKeyCommitment, expirationInSeconds: number): ExpiringProfileKeyCredentialResponse;
19
+ /**
20
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
21
+ */
16
22
  issuePniCredential(profileKeyCredentialRequest: ProfileKeyCredentialRequest, aci: UUIDType, pni: UUIDType, profileKeyCommitment: ProfileKeyCommitment): PniCredentialResponse;
23
+ /**
24
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
25
+ */
17
26
  issuePniCredentialWithRandom(random: Buffer, profileKeyCredentialRequest: ProfileKeyCredentialRequest, aci: UUIDType, pni: UUIDType, profileKeyCommitment: ProfileKeyCommitment): PniCredentialResponse;
18
- verifyProfileKeyCredentialPresentation(groupPublicParams: GroupPublicParams, profileKeyCredentialPresentation: ProfileKeyCredentialPresentation): void;
27
+ verifyProfileKeyCredentialPresentation(groupPublicParams: GroupPublicParams, profileKeyCredentialPresentation: ProfileKeyCredentialPresentation, now?: Date): void;
28
+ /**
29
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
30
+ */
19
31
  verifyPniCredentialPresentation(groupPublicParams: GroupPublicParams, presentation: PniCredentialPresentation): void;
20
32
  }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  //
3
- // Copyright 2020-2021 Signal Messenger, LLC.
3
+ // Copyright 2020-2022 Signal Messenger, LLC.
4
4
  // SPDX-License-Identifier: AGPL-3.0-only
5
5
  //
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const crypto_1 = require("crypto");
8
8
  const Native = require("../../../Native");
9
9
  const Constants_1 = require("../internal/Constants");
10
+ const ExpiringProfileKeyCredentialResponse_1 = require("./ExpiringProfileKeyCredentialResponse");
10
11
  const PniCredentialResponse_1 = require("./PniCredentialResponse");
11
12
  const ProfileKeyCredentialResponse_1 = require("./ProfileKeyCredentialResponse");
12
13
  const UUIDUtil_1 = require("../internal/UUIDUtil");
@@ -21,16 +22,32 @@ class ServerZkProfileOperations {
21
22
  issueProfileKeyCredentialWithRandom(random, profileKeyCredentialRequest, uuid, profileKeyCommitment) {
22
23
  return new ProfileKeyCredentialResponse_1.default(Native.ServerSecretParams_IssueProfileKeyCredentialDeterministic(this.serverSecretParams.getContents(), random, profileKeyCredentialRequest.getContents(), (0, UUIDUtil_1.fromUUID)(uuid), profileKeyCommitment.getContents()));
23
24
  }
25
+ issueExpiringProfileKeyCredential(profileKeyCredentialRequest, uuid, profileKeyCommitment, expirationInSeconds) {
26
+ const random = (0, crypto_1.randomBytes)(Constants_1.RANDOM_LENGTH);
27
+ return this.issueExpiringProfileKeyCredentialWithRandom(random, profileKeyCredentialRequest, uuid, profileKeyCommitment, expirationInSeconds);
28
+ }
29
+ issueExpiringProfileKeyCredentialWithRandom(random, profileKeyCredentialRequest, uuid, profileKeyCommitment, expirationInSeconds) {
30
+ return new ExpiringProfileKeyCredentialResponse_1.default(Native.ServerSecretParams_IssueExpiringProfileKeyCredentialDeterministic(this.serverSecretParams.getContents(), random, profileKeyCredentialRequest.getContents(), (0, UUIDUtil_1.fromUUID)(uuid), profileKeyCommitment.getContents(), expirationInSeconds));
31
+ }
32
+ /**
33
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
34
+ */
24
35
  issuePniCredential(profileKeyCredentialRequest, aci, pni, profileKeyCommitment) {
25
36
  const random = (0, crypto_1.randomBytes)(Constants_1.RANDOM_LENGTH);
26
37
  return this.issuePniCredentialWithRandom(random, profileKeyCredentialRequest, aci, pni, profileKeyCommitment);
27
38
  }
39
+ /**
40
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
41
+ */
28
42
  issuePniCredentialWithRandom(random, profileKeyCredentialRequest, aci, pni, profileKeyCommitment) {
29
43
  return new PniCredentialResponse_1.default(Native.ServerSecretParams_IssuePniCredentialDeterministic(this.serverSecretParams.getContents(), random, profileKeyCredentialRequest.getContents(), (0, UUIDUtil_1.fromUUID)(aci), (0, UUIDUtil_1.fromUUID)(pni), profileKeyCommitment.getContents()));
30
44
  }
31
- verifyProfileKeyCredentialPresentation(groupPublicParams, profileKeyCredentialPresentation) {
32
- Native.ServerSecretParams_VerifyProfileKeyCredentialPresentation(this.serverSecretParams.getContents(), groupPublicParams.getContents(), profileKeyCredentialPresentation.getContents());
45
+ verifyProfileKeyCredentialPresentation(groupPublicParams, profileKeyCredentialPresentation, now = new Date()) {
46
+ Native.ServerSecretParams_VerifyProfileKeyCredentialPresentation(this.serverSecretParams.getContents(), groupPublicParams.getContents(), profileKeyCredentialPresentation.getContents(), Math.floor(now.getTime() / 1000));
33
47
  }
48
+ /**
49
+ * @deprecated Superseded by AuthCredentialWithPni + ProfileKeyCredential
50
+ */
34
51
  verifyPniCredentialPresentation(groupPublicParams, presentation) {
35
52
  Native.ServerSecretParams_VerifyPniCredentialPresentation(this.serverSecretParams.getContents(), groupPublicParams.getContents(), presentation.getContents());
36
53
  }
@@ -1,7 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ReceiptCredential extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
- getReceiptExpirationTime(): bigint;
6
+ getReceiptExpirationTime(): number;
6
7
  getReceiptLevel(): bigint;
7
8
  }
@@ -11,7 +11,7 @@ class ReceiptCredential extends ByteArray_1.default {
11
11
  super(contents, Native.ReceiptCredential_CheckValidContents);
12
12
  }
13
13
  getReceiptExpirationTime() {
14
- return Native.ReceiptCredential_GetReceiptExpirationTime(this.contents).readBigUInt64BE();
14
+ return Native.ReceiptCredential_GetReceiptExpirationTime(this.contents);
15
15
  }
16
16
  getReceiptLevel() {
17
17
  return Native.ReceiptCredential_GetReceiptLevel(this.contents).readBigUInt64BE();
@@ -2,9 +2,10 @@
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  import ReceiptSerial from './ReceiptSerial';
4
4
  export default class ReceiptCredentialPresentation extends ByteArray {
5
+ private readonly __type?;
5
6
  static SIZE: number;
6
7
  constructor(contents: Buffer);
7
- getReceiptExpirationTime(): bigint;
8
+ getReceiptExpirationTime(): number;
8
9
  getReceiptLevel(): bigint;
9
10
  getReceiptSerialBytes(): ReceiptSerial;
10
11
  }
@@ -12,7 +12,7 @@ class ReceiptCredentialPresentation extends ByteArray_1.default {
12
12
  super(contents, Native.ReceiptCredentialPresentation_CheckValidContents);
13
13
  }
14
14
  getReceiptExpirationTime() {
15
- return Native.ReceiptCredentialPresentation_GetReceiptExpirationTime(this.contents).readBigUInt64BE();
15
+ return Native.ReceiptCredentialPresentation_GetReceiptExpirationTime(this.contents);
16
16
  }
17
17
  getReceiptLevel() {
18
18
  return Native.ReceiptCredentialPresentation_GetReceiptLevel(this.contents).readBigUInt64BE();
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ReceiptCredentialRequest extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -2,6 +2,7 @@
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  import ReceiptCredentialRequest from './ReceiptCredentialRequest';
4
4
  export default class ReceiptCredentialRequestContext extends ByteArray {
5
+ private readonly __type?;
5
6
  static SIZE: number;
6
7
  constructor(contents: Buffer);
7
8
  getRequest(): ReceiptCredentialRequest;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ReceiptCredentialResponse extends ByteArray {
4
+ private readonly __type?;
4
5
  constructor(contents: Buffer);
5
6
  }
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import ByteArray from '../internal/ByteArray';
3
3
  export default class ReceiptSerial extends ByteArray {
4
+ private readonly __type?;
4
5
  static SIZE: number;
5
6
  constructor(contents: Buffer);
6
7
  }
@@ -6,7 +6,7 @@ import ReceiptCredentialPresentation from './ReceiptCredentialPresentation';
6
6
  export default class ServerZkReceiptOperations {
7
7
  serverSecretParams: ServerSecretParams;
8
8
  constructor(serverSecretParams: ServerSecretParams);
9
- issueReceiptCredential(receiptCredentialRequest: ReceiptCredentialRequest, receiptExpirationTime: bigint, receiptLevel: bigint): ReceiptCredentialResponse;
10
- issueReceiptCredentialWithRandom(random: Buffer, receiptCredentialRequest: ReceiptCredentialRequest, receiptExpirationTime: bigint, receiptLevel: bigint): ReceiptCredentialResponse;
9
+ issueReceiptCredential(receiptCredentialRequest: ReceiptCredentialRequest, receiptExpirationTime: number, receiptLevel: bigint): ReceiptCredentialResponse;
10
+ issueReceiptCredentialWithRandom(random: Buffer, receiptCredentialRequest: ReceiptCredentialRequest, receiptExpirationTime: number, receiptLevel: bigint): ReceiptCredentialResponse;
11
11
  verifyReceiptCredentialPresentation(receiptCredentialPresentation: ReceiptCredentialPresentation): void;
12
12
  }
@@ -18,7 +18,7 @@ class ServerZkReceiptOperations {
18
18
  return this.issueReceiptCredentialWithRandom(random, receiptCredentialRequest, receiptExpirationTime, receiptLevel);
19
19
  }
20
20
  issueReceiptCredentialWithRandom(random, receiptCredentialRequest, receiptExpirationTime, receiptLevel) {
21
- return new ReceiptCredentialResponse_1.default(Native.ServerSecretParams_IssueReceiptCredentialDeterministic(this.serverSecretParams.getContents(), random, receiptCredentialRequest.getContents(), (0, BigIntUtil_1.bufferFromBigUInt64BE)(receiptExpirationTime), (0, BigIntUtil_1.bufferFromBigUInt64BE)(receiptLevel)));
21
+ return new ReceiptCredentialResponse_1.default(Native.ServerSecretParams_IssueReceiptCredentialDeterministic(this.serverSecretParams.getContents(), random, receiptCredentialRequest.getContents(), receiptExpirationTime, (0, BigIntUtil_1.bufferFromBigUInt64BE)(receiptLevel)));
22
22
  }
23
23
  verifyReceiptCredentialPresentation(receiptCredentialPresentation) {
24
24
  Native.ServerSecretParams_VerifyReceiptCredentialPresentation(this.serverSecretParams.getContents(), receiptCredentialPresentation.getContents());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalapp/libsignal-client",
3
- "version": "0.16.0",
3
+ "version": "0.18.1",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "build": "node-gyp build",
21
21
  "tsc": "tsc -b",
22
22
  "clean": "rimraf dist build prebuilds",
23
- "test": "electron-mocha --recursive dist/test --require source-map-support/register",
23
+ "test": "mocha --recursive dist/test --require source-map-support/register",
24
24
  "lint": "eslint . --ext .js,.jsx,.ts,.tsx",
25
25
  "format": "p() { prettier ${@:- --write} '**/*.{css,js,json,md,scss,ts,tsx}'; }; p"
26
26
  },
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/bindings": "^1.3.0",
33
- "@types/chai": "^4.2.15",
33
+ "@types/chai": "^4.3.1",
34
34
  "@types/chai-as-promised": "^7.1.3",
35
35
  "@types/mocha": "^5.2.7",
36
36
  "@types/node": "*",
@@ -39,19 +39,17 @@
39
39
  "@typescript-eslint/parser": "^4.6.0",
40
40
  "chai": "^4.2.0",
41
41
  "chai-as-promised": "^7.1.1",
42
- "electron": "13.3.0",
43
- "electron-mocha": "^10.0",
44
42
  "eslint": "^7.12.1",
45
43
  "eslint-config-prettier": "^6.15.0",
46
44
  "eslint-plugin-header": "^3.1.0",
47
45
  "eslint-plugin-import": "^2.22.1",
48
46
  "eslint-plugin-mocha": "^8.0.0",
49
47
  "eslint-plugin-more": "^1.0.0",
50
- "mocha": "*",
48
+ "mocha": "^9",
51
49
  "node-gyp": "^8.4.1",
52
50
  "prettier": "^1.19.1",
53
51
  "rimraf": "^3.0.1",
54
52
  "source-map-support": "^0.5.19",
55
- "typescript": "4.4.2"
53
+ "typescript": "4.6.2"
56
54
  }
57
55
  }
Binary file
Binary file
Binary file