@pontalabs/baileys 1.0.6 → 1.0.7

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 (185) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +839 -267
  3. package/WAProto/GenerateStatics.sh +4 -3
  4. package/WAProto/WAProto.proto +511 -1215
  5. package/WAProto/index.d.ts +55 -14017
  6. package/WAProto/index.js +29 -97689
  7. package/lib/Defaults/index.d.ts +74 -72
  8. package/lib/Defaults/index.js +108 -94
  9. package/lib/Signal/Group/ciphertext-message.d.ts +7 -8
  10. package/lib/Signal/Group/ciphertext-message.js +16 -9
  11. package/lib/Signal/Group/group-session-builder.d.ts +13 -11
  12. package/lib/Signal/Group/group-session-builder.js +61 -19
  13. package/lib/Signal/Group/group_cipher.d.ts +16 -14
  14. package/lib/Signal/Group/group_cipher.js +70 -41
  15. package/lib/Signal/Group/index.d.ts +11 -12
  16. package/lib/Signal/Group/index.js +61 -12
  17. package/lib/Signal/Group/keyhelper.d.ts +14 -9
  18. package/lib/Signal/Group/keyhelper.js +58 -10
  19. package/lib/Signal/Group/sender-chain-key.d.ts +13 -13
  20. package/lib/Signal/Group/sender-chain-key.js +34 -13
  21. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -16
  22. package/lib/Signal/Group/sender-key-distribution-message.js +36 -28
  23. package/lib/Signal/Group/sender-key-message.d.ts +18 -18
  24. package/lib/Signal/Group/sender-key-message.js +45 -38
  25. package/lib/Signal/Group/sender-key-name.d.ts +15 -14
  26. package/lib/Signal/Group/sender-key-name.js +31 -20
  27. package/lib/Signal/Group/sender-key-record.d.ts +25 -24
  28. package/lib/Signal/Group/sender-key-record.js +35 -18
  29. package/lib/Signal/Group/sender-key-state.d.ts +34 -29
  30. package/lib/Signal/Group/sender-key-state.js +100 -37
  31. package/lib/Signal/Group/sender-message-key.d.ts +10 -11
  32. package/lib/Signal/Group/sender-message-key.js +22 -15
  33. package/lib/Signal/libsignal.d.ts +8 -5
  34. package/lib/Signal/libsignal.js +142 -288
  35. package/lib/Signal/lid-mapping.d.ts +28 -23
  36. package/lib/Signal/lid-mapping.js +184 -277
  37. package/lib/Socket/Client/index.d.ts +2 -3
  38. package/lib/Socket/Client/index.js +22 -3
  39. package/lib/Socket/Client/types.d.ts +15 -15
  40. package/lib/Socket/Client/types.js +15 -8
  41. package/lib/Socket/Client/websocket.d.ts +12 -12
  42. package/lib/Socket/Client/websocket.js +37 -29
  43. package/lib/Socket/business.d.ts +178 -208
  44. package/lib/Socket/business.js +127 -91
  45. package/lib/Socket/chats.d.ts +93 -120
  46. package/lib/Socket/chats.js +652 -727
  47. package/lib/Socket/community.js +10 -2
  48. package/lib/Socket/groups.d.ts +111 -143
  49. package/lib/Socket/groups.js +186 -165
  50. package/lib/Socket/index.d.ts +183 -252
  51. package/lib/Socket/index.js +18 -38
  52. package/lib/Socket/messages-recv.d.ts +167 -196
  53. package/lib/Socket/messages-recv.js +1567 -1443
  54. package/lib/Socket/messages-send.d.ts +158 -192
  55. package/lib/Socket/messages-send.js +1208 -1102
  56. package/lib/Socket/newsletter.d.ts +138 -163
  57. package/lib/Socket/newsletter.js +249 -153
  58. package/lib/Socket/socket.d.ts +36 -50
  59. package/lib/Socket/socket.js +820 -749
  60. package/lib/Store/index.d.ts +4 -4
  61. package/lib/Store/index.js +24 -4
  62. package/lib/Store/make-in-memory-store.d.ts +104 -44
  63. package/lib/Store/make-in-memory-store.js +213 -199
  64. package/lib/Store/make-ordered-dictionary.d.ts +12 -13
  65. package/lib/Store/make-ordered-dictionary.js +45 -38
  66. package/lib/Store/object-repository.d.ts +10 -11
  67. package/lib/Store/object-repository.js +16 -9
  68. package/lib/Types/Auth.d.ts +97 -93
  69. package/lib/Types/Auth.js +3 -2
  70. package/lib/Types/Bussines.js +3 -2
  71. package/lib/Types/Call.d.ts +13 -14
  72. package/lib/Types/Call.js +3 -2
  73. package/lib/Types/Chat.d.ts +97 -78
  74. package/lib/Types/Chat.js +9 -8
  75. package/lib/Types/Contact.d.ts +9 -12
  76. package/lib/Types/Contact.js +3 -2
  77. package/lib/Types/Events.d.ts +176 -206
  78. package/lib/Types/Events.js +3 -2
  79. package/lib/Types/GroupMetadata.d.ts +48 -53
  80. package/lib/Types/GroupMetadata.js +3 -2
  81. package/lib/Types/Label.d.ts +14 -13
  82. package/lib/Types/Label.js +30 -24
  83. package/lib/Types/LabelAssociation.d.ts +20 -15
  84. package/lib/Types/LabelAssociation.js +12 -6
  85. package/lib/Types/Message.d.ts +412 -248
  86. package/lib/Types/Message.js +19 -17
  87. package/lib/Types/Product.d.ts +71 -58
  88. package/lib/Types/Product.js +3 -2
  89. package/lib/Types/Signal.d.ts +82 -71
  90. package/lib/Types/Signal.js +3 -2
  91. package/lib/Types/Socket.d.ts +81 -76
  92. package/lib/Types/Socket.js +3 -3
  93. package/lib/Types/State.d.ts +19 -75
  94. package/lib/Types/State.js +14 -56
  95. package/lib/Types/USync.d.ts +8 -8
  96. package/lib/Types/USync.js +3 -2
  97. package/lib/Types/index.d.ts +62 -47
  98. package/lib/Types/index.js +50 -26
  99. package/lib/Utils/auth-utils.d.ts +10 -13
  100. package/lib/Utils/auth-utils.js +472 -213
  101. package/lib/Utils/business.d.ts +20 -14
  102. package/lib/Utils/business.js +134 -110
  103. package/lib/Utils/chat-utils.d.ts +70 -88
  104. package/lib/Utils/chat-utils.js +403 -466
  105. package/lib/Utils/crypto.d.ts +46 -27
  106. package/lib/Utils/crypto.js +188 -117
  107. package/lib/Utils/decode-wa-message.d.ts +45 -58
  108. package/lib/Utils/decode-wa-message.js +311 -212
  109. package/lib/Utils/event-buffer.d.ts +17 -14
  110. package/lib/Utils/event-buffer.js +296 -321
  111. package/lib/Utils/generics.d.ts +92 -66
  112. package/lib/Utils/generics.js +436 -270
  113. package/lib/Utils/history.d.ts +23 -24
  114. package/lib/Utils/history.js +76 -106
  115. package/lib/Utils/index.d.ts +21 -24
  116. package/lib/Utils/index.js +41 -24
  117. package/lib/Utils/link-preview.d.ts +14 -12
  118. package/lib/Utils/link-preview.js +75 -40
  119. package/lib/Utils/logger.d.ts +11 -10
  120. package/lib/Utils/logger.js +7 -3
  121. package/lib/Utils/lt-hash.d.ts +14 -8
  122. package/lib/Utils/lt-hash.js +53 -3
  123. package/lib/Utils/make-mutex.d.ts +7 -7
  124. package/lib/Utils/make-mutex.js +44 -28
  125. package/lib/Utils/message-retry-manager.d.ts +88 -115
  126. package/lib/Utils/message-retry-manager.js +160 -265
  127. package/lib/Utils/messages-media.d.ts +107 -105
  128. package/lib/Utils/messages-media.js +619 -548
  129. package/lib/Utils/messages.d.ts +66 -52
  130. package/lib/Utils/messages.js +1558 -1730
  131. package/lib/Utils/noise-handler.d.ts +18 -18
  132. package/lib/Utils/noise-handler.js +130 -176
  133. package/lib/Utils/process-message.d.ts +32 -43
  134. package/lib/Utils/process-message.js +282 -484
  135. package/lib/Utils/rich-message-utils.js +724 -1220
  136. package/lib/Utils/signal.d.ts +32 -37
  137. package/lib/Utils/signal.js +105 -140
  138. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -5
  139. package/lib/Utils/use-multi-file-auth-state.js +120 -70
  140. package/lib/Utils/use-single-file-auth-state.d.ts +13 -11
  141. package/lib/Utils/use-single-file-auth-state.js +66 -92
  142. package/lib/Utils/validate-connection.d.ts +13 -11
  143. package/lib/Utils/validate-connection.js +113 -128
  144. package/lib/WABinary/constants.d.ts +27 -25
  145. package/lib/WABinary/constants.js +1292 -1451
  146. package/lib/WABinary/decode.d.ts +9 -7
  147. package/lib/WABinary/decode.js +189 -163
  148. package/lib/WABinary/encode.d.ts +3 -3
  149. package/lib/WABinary/encode.js +155 -110
  150. package/lib/WABinary/generic-utils.d.ts +27 -14
  151. package/lib/WABinary/generic-utils.js +105 -177
  152. package/lib/WABinary/index.d.ts +5 -6
  153. package/lib/WABinary/index.js +25 -6
  154. package/lib/WABinary/jid-utils.d.ts +54 -41
  155. package/lib/WABinary/jid-utils.js +152 -83
  156. package/lib/WABinary/types.d.ts +13 -10
  157. package/lib/WABinary/types.js +3 -2
  158. package/lib/WAM/BinaryInfo.d.ts +15 -8
  159. package/lib/WAM/BinaryInfo.js +14 -7
  160. package/lib/WAM/constants.d.ts +37 -30
  161. package/lib/WAM/constants.js +11983 -19465
  162. package/lib/WAM/encode.d.ts +3 -3
  163. package/lib/WAM/encode.js +109 -95
  164. package/lib/WAM/index.d.ts +3 -4
  165. package/lib/WAM/index.js +23 -4
  166. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  167. package/lib/WAUSync/Protocols/USyncContactProtocol.js +21 -37
  168. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -19
  169. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +26 -18
  170. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -11
  171. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +20 -12
  172. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -11
  173. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +24 -16
  174. package/lib/WAUSync/Protocols/index.d.ts +6 -6
  175. package/lib/WAUSync/Protocols/index.js +26 -6
  176. package/lib/WAUSync/USyncQuery.d.ts +28 -27
  177. package/lib/WAUSync/USyncQuery.js +62 -68
  178. package/lib/WAUSync/USyncUser.d.ts +10 -15
  179. package/lib/WAUSync/USyncUser.js +19 -20
  180. package/lib/WAUSync/index.d.ts +3 -4
  181. package/lib/WAUSync/index.js +23 -4
  182. package/lib/index.d.ts +12 -11
  183. package/lib/index.js +39 -12
  184. package/package.json +42 -86
  185. package/engine-requirements.js +0 -10
@@ -1,82 +1,111 @@
1
- import { decrypt, encrypt } from 'libsignal/src/crypto.js';
2
- import { SenderKeyMessage } from './sender-key-message.js';
3
- import { SenderKeyName } from './sender-key-name.js';
4
- import { SenderKeyRecord } from './sender-key-record.js';
5
- import { SenderKeyState } from './sender-key-state.js';
6
- export class GroupCipher {
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const crypto_1 = require("libsignal/src/crypto")
6
+ const sender_key_message_1 = require("./sender-key-message")
7
+
8
+ class GroupCipher {
7
9
  constructor(senderKeyStore, senderKeyName) {
8
- this.senderKeyStore = senderKeyStore;
9
- this.senderKeyName = senderKeyName;
10
+ this.senderKeyStore = senderKeyStore
11
+ this.senderKeyName = senderKeyName
10
12
  }
11
13
  async encrypt(paddedPlaintext) {
12
- const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
14
+ const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName)
15
+
13
16
  if (!record) {
14
- throw new Error('No SenderKeyRecord found for encryption');
17
+ throw new Error('No SenderKeyRecord found for encryption')
15
18
  }
16
- const senderKeyState = record.getSenderKeyState();
19
+
20
+ const senderKeyState = record.getSenderKeyState()
21
+
17
22
  if (!senderKeyState) {
18
- throw new Error('No session to encrypt message');
23
+ throw new Error('No session to encrypt message')
19
24
  }
20
- const iteration = senderKeyState.getSenderChainKey().getIteration();
21
- const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1);
22
- const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext);
23
- const senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate());
24
- await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
25
- return senderKeyMessage.serialize();
25
+
26
+ const iteration = senderKeyState.getSenderChainKey().getIteration()
27
+ const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1)
28
+ const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext)
29
+ const senderKeyMessage = new sender_key_message_1.SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate())
30
+
31
+ await this.senderKeyStore.storeSenderKey(this.senderKeyName, record)
32
+
33
+ return senderKeyMessage.serialize()
26
34
  }
27
35
  async decrypt(senderKeyMessageBytes) {
28
- const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
36
+ const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName)
37
+
29
38
  if (!record) {
30
- throw new Error('No SenderKeyRecord found for decryption');
39
+ throw new Error('No SenderKeyRecord found for decryption')
31
40
  }
32
- const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes);
33
- const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId());
41
+
42
+ const senderKeyMessage = new sender_key_message_1.SenderKeyMessage(null, null, null, null, senderKeyMessageBytes)
43
+ const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId())
44
+
34
45
  if (!senderKeyState) {
35
46
  throw new Error('No session found to decrypt message');
36
47
  }
37
- senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic());
38
- const senderKey = this.getSenderKey(senderKeyState, senderKeyMessage.getIteration());
39
- const plaintext = await this.getPlainText(senderKey.getIv(), senderKey.getCipherKey(), senderKeyMessage.getCipherText());
40
- await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
41
- return plaintext;
48
+
49
+ senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic())
50
+
51
+ const senderKey = this.getSenderKey(senderKeyState, senderKeyMessage.getIteration())
52
+ const plaintext = await this.getPlainText(senderKey.getIv(), senderKey.getCipherKey(), senderKeyMessage.getCipherText())
53
+
54
+ await this.senderKeyStore.storeSenderKey(this.senderKeyName, record)
55
+
56
+ return plaintext
42
57
  }
43
58
  getSenderKey(senderKeyState, iteration) {
44
- let senderChainKey = senderKeyState.getSenderChainKey();
59
+ let senderChainKey = senderKeyState.getSenderChainKey()
60
+
45
61
  if (senderChainKey.getIteration() > iteration) {
46
62
  if (senderKeyState.hasSenderMessageKey(iteration)) {
47
- const messageKey = senderKeyState.removeSenderMessageKey(iteration);
63
+ const messageKey = senderKeyState.removeSenderMessageKey(iteration)
64
+
48
65
  if (!messageKey) {
49
- throw new Error('No sender message key found for iteration');
66
+ throw new Error('No sender message key found for iteration')
50
67
  }
51
- return messageKey;
68
+
69
+ return messageKey
52
70
  }
53
- throw new Error(`Received message with old counter: ${senderChainKey.getIteration()}, ${iteration}`);
71
+
72
+ throw new Error(`Received message with old counter: ${senderChainKey.getIteration()}, ${iteration}`)
54
73
  }
74
+
55
75
  if (iteration - senderChainKey.getIteration() > 2000) {
56
76
  throw new Error('Over 2000 messages into the future!');
57
77
  }
78
+
58
79
  while (senderChainKey.getIteration() < iteration) {
59
- senderKeyState.addSenderMessageKey(senderChainKey.getSenderMessageKey());
60
- senderChainKey = senderChainKey.getNext();
80
+ senderKeyState.addSenderMessageKey(senderChainKey.getSenderMessageKey())
81
+ senderChainKey = senderChainKey.getNext()
61
82
  }
62
- senderKeyState.setSenderChainKey(senderChainKey.getNext());
63
- return senderChainKey.getSenderMessageKey();
83
+
84
+ senderKeyState.setSenderChainKey(senderChainKey.getNext())
85
+
86
+ return senderChainKey.getSenderMessageKey()
64
87
  }
65
88
  async getPlainText(iv, key, ciphertext) {
66
89
  try {
67
- return decrypt(key, ciphertext, iv);
90
+ return crypto_1.decrypt(key, ciphertext, iv)
68
91
  }
69
92
  catch (e) {
70
- throw new Error('InvalidMessageException');
93
+ throw new Error('InvalidMessageException')
71
94
  }
72
95
  }
73
96
  async getCipherText(iv, key, plaintext) {
74
97
  try {
75
- return encrypt(key, plaintext, iv);
98
+ const ivBuffer = typeof iv === 'string' ? Buffer.from(iv, 'base64') : iv
99
+ const keyBuffer = typeof key === 'string' ? Buffer.from(key, 'base64') : key
100
+ const plaintextBuffer = typeof plaintext === 'string' ? Buffer.from(plaintext) : plaintext
101
+ return crypto_1.encrypt(keyBuffer, plaintextBuffer, ivBuffer)
76
102
  }
77
103
  catch (e) {
78
- throw new Error('InvalidMessageException');
104
+ throw new Error('InvalidMessageException')
79
105
  }
80
106
  }
81
107
  }
82
- //# sourceMappingURL=group_cipher.js.map
108
+
109
+ module.exports = {
110
+ GroupCipher
111
+ }
@@ -1,12 +1,11 @@
1
- export { GroupSessionBuilder } from './group-session-builder.js';
2
- export { SenderKeyDistributionMessage } from './sender-key-distribution-message.js';
3
- export { SenderKeyRecord } from './sender-key-record.js';
4
- export { SenderKeyName } from './sender-key-name.js';
5
- export { GroupCipher } from './group_cipher.js';
6
- export { SenderKeyState } from './sender-key-state.js';
7
- export { SenderKeyMessage } from './sender-key-message.js';
8
- export { SenderMessageKey } from './sender-message-key.js';
9
- export { SenderChainKey } from './sender-chain-key.js';
10
- export { CiphertextMessage } from './ciphertext-message.js';
11
- export * as keyhelper from './keyhelper.js';
12
- //# sourceMappingURL=index.d.ts.map
1
+ export { GroupSessionBuilder } from './group-session-builder'
2
+ export { SenderKeyDistributionMessage } from './sender-key-distribution-message'
3
+ export { SenderKeyRecord } from './sender-key-record'
4
+ export { SenderKeyName } from './sender-key-name'
5
+ export { GroupCipher } from './group_cipher'
6
+ export { SenderKeyState } from './sender-key-state'
7
+ export { SenderKeyMessage } from './sender-key-message'
8
+ export { SenderMessageKey } from './sender-message-key'
9
+ export { SenderChainKey } from './sender-chain-key'
10
+ export { CiphertextMessage } from './ciphertext-message'
11
+ export * as keyhelper from './keyhelper'
@@ -1,12 +1,61 @@
1
- export { GroupSessionBuilder } from './group-session-builder.js';
2
- export { SenderKeyDistributionMessage } from './sender-key-distribution-message.js';
3
- export { SenderKeyRecord } from './sender-key-record.js';
4
- export { SenderKeyName } from './sender-key-name.js';
5
- export { GroupCipher } from './group_cipher.js';
6
- export { SenderKeyState } from './sender-key-state.js';
7
- export { SenderKeyMessage } from './sender-key-message.js';
8
- export { SenderMessageKey } from './sender-message-key.js';
9
- export { SenderChainKey } from './sender-chain-key.js';
10
- export { CiphertextMessage } from './ciphertext-message.js';
11
- export * as keyhelper from './keyhelper.js';
12
- //# sourceMappingURL=index.js.map
1
+ "use strict"
2
+
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k
5
+ var desc = Object.getOwnPropertyDescriptor(m, k)
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k] } }
8
+ }
9
+ Object.defineProperty(o, k2, desc)
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k
12
+ o[k2] = m[k]
13
+ }))
14
+
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v })
17
+ }) : function(o, v) {
18
+ o["default"] = v
19
+ })
20
+
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = []
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
+ return ar
27
+ }
28
+ return ownKeys(o)
29
+ }
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod
32
+ var result = {}
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
+ __setModuleDefault(result, mod)
35
+ return result
36
+ }
37
+ })()
38
+
39
+ Object.defineProperty(exports, "__esModule", { value: true })
40
+ exports.keyhelper = exports.CiphertextMessage = exports.SenderChainKey = exports.SenderMessageKey = exports.SenderKeyMessage = exports.SenderKeyState = exports.GroupCipher = exports.SenderKeyName = exports.SenderKeyRecord = exports.SenderKeyDistributionMessage = exports.GroupSessionBuilder = void 0
41
+ var group_session_builder_1 = require("./group-session-builder")
42
+ Object.defineProperty(exports, "GroupSessionBuilder", { enumerable: true, get: function () { return group_session_builder_1.GroupSessionBuilder } })
43
+ var sender_key_distribution_message_1 = require("./sender-key-distribution-message")
44
+ Object.defineProperty(exports, "SenderKeyDistributionMessage", { enumerable: true, get: function () { return sender_key_distribution_message_1.SenderKeyDistributionMessage } })
45
+ var sender_key_record_1 = require("./sender-key-record")
46
+ Object.defineProperty(exports, "SenderKeyRecord", { enumerable: true, get: function () { return sender_key_record_1.SenderKeyRecord } })
47
+ var sender_key_name_1 = require("./sender-key-name")
48
+ Object.defineProperty(exports, "SenderKeyName", { enumerable: true, get: function () { return sender_key_name_1.SenderKeyName } })
49
+ var group_cipher_1 = require("./group_cipher")
50
+ Object.defineProperty(exports, "GroupCipher", { enumerable: true, get: function () { return group_cipher_1.GroupCipher } })
51
+ var sender_key_state_1 = require("./sender-key-state")
52
+ Object.defineProperty(exports, "SenderKeyState", { enumerable: true, get: function () { return sender_key_state_1.SenderKeyState } })
53
+ var sender_key_message_1 = require("./sender-key-message")
54
+ Object.defineProperty(exports, "SenderKeyMessage", { enumerable: true, get: function () { return sender_key_message_1.SenderKeyMessage } })
55
+ var sender_message_key_1 = require("./sender-message-key")
56
+ Object.defineProperty(exports, "SenderMessageKey", { enumerable: true, get: function () { return sender_message_key_1.SenderMessageKey } })
57
+ var sender_chain_key_1 = require("./sender-chain-key")
58
+ Object.defineProperty(exports, "SenderChainKey", { enumerable: true, get: function () { return sender_chain_key_1.SenderChainKey } })
59
+ var ciphertext_message_1 = require("./ciphertext-message")
60
+ Object.defineProperty(exports, "CiphertextMessage", { enumerable: true, get: function () { return ciphertext_message_1.CiphertextMessage } })
61
+ exports.keyhelper = __importStar(require("./keyhelper"))
@@ -1,11 +1,16 @@
1
- import { generateKeyPair } from 'libsignal/src/curve.js';
2
- type KeyPairType = ReturnType<typeof generateKeyPair>;
3
- export declare function generateSenderKey(): Buffer;
4
- export declare function generateSenderKeyId(): number;
1
+ import { generateKeyPair } from 'libsignal/src/curve'
2
+
3
+ type KeyPairType = ReturnType<typeof generateKeyPair>
4
+
5
+ export declare function generateSenderKey(): Buffer
6
+
7
+ export declare function generateSenderKeyId(): number
8
+
5
9
  export interface SigningKeyPair {
6
- public: Buffer;
7
- private: Buffer;
10
+ public: Buffer
11
+ private: Buffer
8
12
  }
9
- export declare function generateSenderSigningKey(key?: KeyPairType): SigningKeyPair;
10
- export {};
11
- //# sourceMappingURL=keyhelper.d.ts.map
13
+
14
+ export declare function generateSenderSigningKey(key?: KeyPairType): SigningKeyPair
15
+
16
+ export {}
@@ -1,18 +1,66 @@
1
- import * as nodeCrypto from 'crypto';
2
- import { generateKeyPair } from 'libsignal/src/curve.js';
3
- export function generateSenderKey() {
4
- return nodeCrypto.randomBytes(32);
1
+ "use strict"
2
+
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k
5
+ var desc = Object.getOwnPropertyDescriptor(m, k)
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k] } }
8
+ }
9
+ Object.defineProperty(o, k2, desc)
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k
12
+ o[k2] = m[k]
13
+ }))
14
+
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v })
17
+ }) : function(o, v) {
18
+ o["default"] = v
19
+ })
20
+
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = []
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
+ return ar
27
+ }
28
+ return ownKeys(o)
29
+ }
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod
32
+ var result = {}
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
+ __setModuleDefault(result, mod)
35
+ return result
36
+ }
37
+ })()
38
+
39
+ Object.defineProperty(exports, "__esModule", { value: true })
40
+
41
+ const nodeCrypto = __importStar(require("crypto"))
42
+ const curve_1 = require("libsignal/src/curve")
43
+
44
+ function generateSenderKey() {
45
+ return nodeCrypto.randomBytes(32)
5
46
  }
6
- export function generateSenderKeyId() {
7
- return nodeCrypto.randomInt(2147483647);
47
+
48
+ function generateSenderKeyId() {
49
+ return nodeCrypto.randomInt(2147483647)
8
50
  }
9
- export function generateSenderSigningKey(key) {
51
+
52
+ function generateSenderSigningKey(key) {
10
53
  if (!key) {
11
- key = generateKeyPair();
54
+ key = curve_1.generateKeyPair()
12
55
  }
13
56
  return {
14
57
  public: Buffer.from(key.pubKey),
15
58
  private: Buffer.from(key.privKey)
16
- };
59
+ }
17
60
  }
18
- //# sourceMappingURL=keyhelper.js.map
61
+
62
+ module.exports = {
63
+ generateSenderKey,
64
+ generateSenderKeyId,
65
+ generateSenderSigningKey
66
+ }
@@ -1,14 +1,14 @@
1
- import { SenderMessageKey } from './sender-message-key.js';
1
+ import { SenderMessageKey } from './sender-message-key'
2
+
2
3
  export declare class SenderChainKey {
3
- private readonly MESSAGE_KEY_SEED;
4
- private readonly CHAIN_KEY_SEED;
5
- private readonly iteration;
6
- private readonly chainKey;
7
- constructor(iteration: number, chainKey: Uint8Array | Buffer);
8
- getIteration(): number;
9
- getSenderMessageKey(): SenderMessageKey;
10
- getNext(): SenderChainKey;
11
- getSeed(): Uint8Array;
12
- private getDerivative;
13
- }
14
- //# sourceMappingURL=sender-chain-key.d.ts.map
4
+ private readonly MESSAGE_KEY_SEED
5
+ private readonly CHAIN_KEY_SEED
6
+ private readonly iteration
7
+ private readonly chainKey
8
+ constructor(iteration: number, chainKey: any)
9
+ getIteration(): number
10
+ getSenderMessageKey(): SenderMessageKey
11
+ getNext(): SenderChainKey
12
+ getSeed(): Uint8Array
13
+ private getDerivative
14
+ }
@@ -1,26 +1,47 @@
1
- import { calculateMAC } from 'libsignal/src/crypto.js';
2
- import { SenderMessageKey } from './sender-message-key.js';
3
- export class SenderChainKey {
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const crypto_1 = require("libsignal/src/crypto")
6
+ const sender_message_key_1 = require("./sender-message-key")
7
+
8
+ class SenderChainKey {
4
9
  constructor(iteration, chainKey) {
5
- this.MESSAGE_KEY_SEED = Buffer.from([0x01]);
6
- this.CHAIN_KEY_SEED = Buffer.from([0x02]);
7
- this.iteration = iteration;
8
- this.chainKey = Buffer.from(chainKey);
10
+ this.MESSAGE_KEY_SEED = Buffer.from([0x01])
11
+ this.CHAIN_KEY_SEED = Buffer.from([0x02])
12
+ this.iteration = iteration
13
+ if (Buffer.isBuffer(chainKey)) {
14
+ // backported from @MartinSchere's PR
15
+ this.chainKey = chainKey
16
+ }
17
+ else if (chainKey instanceof Uint8Array) {
18
+ this.chainKey = Buffer.from(chainKey)
19
+ }
20
+ else if (chainKey && typeof chainKey === 'object') {
21
+ // backported from @MartinSchere (#1741)
22
+ this.chainKey = Buffer.from(Object.values(chainKey)) // temp fix // backported from @MartinSchere (#1741)
23
+ }
24
+ else {
25
+ this.chainKey = Buffer.alloc(0)
26
+ }
9
27
  }
10
28
  getIteration() {
11
- return this.iteration;
29
+ return this.iteration
12
30
  }
13
31
  getSenderMessageKey() {
14
- return new SenderMessageKey(this.iteration, this.getDerivative(this.MESSAGE_KEY_SEED, this.chainKey));
32
+ return new sender_message_key_1.SenderMessageKey(this.iteration, this.getDerivative(this.MESSAGE_KEY_SEED, this.chainKey))
15
33
  }
16
34
  getNext() {
17
- return new SenderChainKey(this.iteration + 1, this.getDerivative(this.CHAIN_KEY_SEED, this.chainKey));
35
+ return new SenderChainKey(this.iteration + 1, this.getDerivative(this.CHAIN_KEY_SEED, this.chainKey))
18
36
  }
19
37
  getSeed() {
20
- return this.chainKey;
38
+ return this.chainKey
21
39
  }
22
40
  getDerivative(seed, key) {
23
- return calculateMAC(key, seed);
41
+ return (0, crypto_1.calculateMAC)(key, seed)
24
42
  }
25
43
  }
26
- //# sourceMappingURL=sender-chain-key.js.map
44
+
45
+ module.exports = {
46
+ SenderChainKey
47
+ }
@@ -1,17 +1,17 @@
1
- import { CiphertextMessage } from './ciphertext-message.js';
1
+ import { CiphertextMessage } from './ciphertext-message'
2
+
2
3
  export declare class SenderKeyDistributionMessage extends CiphertextMessage {
3
- private readonly id;
4
- private readonly iteration;
5
- private readonly chainKey;
6
- private readonly signatureKey;
7
- private readonly serialized;
8
- constructor(id?: number | null, iteration?: number | null, chainKey?: Uint8Array | null, signatureKey?: Uint8Array | null, serialized?: Uint8Array | null);
9
- private intsToByteHighAndLow;
10
- serialize(): Uint8Array;
11
- getType(): number;
12
- getIteration(): number;
13
- getChainKey(): Uint8Array;
14
- getSignatureKey(): Uint8Array;
15
- getId(): number;
16
- }
17
- //# sourceMappingURL=sender-key-distribution-message.d.ts.map
4
+ private readonly id
5
+ private readonly iteration
6
+ private readonly chainKey
7
+ private readonly signatureKey
8
+ private readonly serialized
9
+ constructor(id?: number | null, iteration?: number | null, chainKey?: Uint8Array | null, signatureKey?: Uint8Array | null, serialized?: Uint8Array | null)
10
+ private intsToByteHighAndLow
11
+ serialize(): Uint8Array
12
+ getType(): number
13
+ getIteration(): number
14
+ getChainKey(): Uint8Array
15
+ getSignatureKey(): Uint8Array
16
+ getId(): number
17
+ }
@@ -1,63 +1,71 @@
1
- import { proto } from '../../../WAProto/index.js';
2
- import { CiphertextMessage } from './ciphertext-message.js';
3
- export class SenderKeyDistributionMessage extends CiphertextMessage {
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const WAProto_1 = require("../../../WAProto")
6
+ const ciphertext_message_1 = require("./ciphertext-message")
7
+
8
+ class SenderKeyDistributionMessage extends ciphertext_message_1.CiphertextMessage {
4
9
  constructor(id, iteration, chainKey, signatureKey, serialized) {
5
- super();
10
+ super()
6
11
  if (serialized) {
7
12
  try {
8
- const message = serialized.slice(1);
9
- const distributionMessage = proto.SenderKeyDistributionMessage.decode(message).toJSON();
10
- this.serialized = serialized;
11
- this.id = distributionMessage.id;
12
- this.iteration = distributionMessage.iteration;
13
+ const message = serialized.slice(1)
14
+ const distributionMessage = WAProto_1.proto.SenderKeyDistributionMessage.decode(message).toJSON()
15
+ this.serialized = serialized
16
+ this.id = distributionMessage.id
17
+ this.iteration = distributionMessage.iteration
13
18
  this.chainKey =
14
19
  typeof distributionMessage.chainKey === 'string'
15
20
  ? Buffer.from(distributionMessage.chainKey, 'base64')
16
- : distributionMessage.chainKey;
21
+ : distributionMessage.chainKey
17
22
  this.signatureKey =
18
23
  typeof distributionMessage.signingKey === 'string'
19
24
  ? Buffer.from(distributionMessage.signingKey, 'base64')
20
- : distributionMessage.signingKey;
25
+ : distributionMessage.signingKey
21
26
  }
22
27
  catch (e) {
23
- throw new Error(String(e));
28
+ throw new Error(String(e))
24
29
  }
25
30
  }
26
31
  else {
27
- const version = this.intsToByteHighAndLow(this.CURRENT_VERSION, this.CURRENT_VERSION);
28
- this.id = id;
29
- this.iteration = iteration;
30
- this.chainKey = chainKey;
31
- this.signatureKey = signatureKey;
32
- const message = proto.SenderKeyDistributionMessage.encode(proto.SenderKeyDistributionMessage.create({
32
+ const version = this.intsToByteHighAndLow(this.CURRENT_VERSION, this.CURRENT_VERSION)
33
+ this.id = id
34
+ this.iteration = iteration
35
+ this.chainKey = chainKey
36
+ this.signatureKey = signatureKey
37
+ const message = WAProto_1.proto.SenderKeyDistributionMessage.encode(WAProto_1.proto.SenderKeyDistributionMessage.create({
33
38
  id,
34
39
  iteration,
35
40
  chainKey,
36
41
  signingKey: this.signatureKey
37
- })).finish();
38
- this.serialized = Buffer.concat([Buffer.from([version]), message]);
42
+ })).finish()
43
+ this.serialized = Buffer.concat([Buffer.from([version]), message])
39
44
  }
40
45
  }
41
46
  intsToByteHighAndLow(highValue, lowValue) {
42
- return (((highValue << 4) | lowValue) & 0xff) % 256;
47
+ return (((highValue << 4) | lowValue) & 0xff) % 256
43
48
  }
44
49
  serialize() {
45
- return this.serialized;
50
+ return this.serialized
46
51
  }
47
52
  getType() {
48
- return this.SENDERKEY_DISTRIBUTION_TYPE;
53
+ return this.SENDERKEY_DISTRIBUTION_TYPE
49
54
  }
50
55
  getIteration() {
51
- return this.iteration;
56
+ return this.iteration
52
57
  }
53
58
  getChainKey() {
54
- return this.chainKey;
59
+ return typeof this.chainKey === 'string' ? Buffer.from(this.chainKey, 'base64') : this.chainKey
55
60
  }
56
61
  getSignatureKey() {
57
- return this.signatureKey;
62
+ return typeof this.signatureKey === 'string' ? Buffer.from(this.signatureKey, 'base64') : this.signatureKey
58
63
  }
59
64
  getId() {
60
- return this.id;
65
+ return this.id
61
66
  }
62
67
  }
63
- //# sourceMappingURL=sender-key-distribution-message.js.map
68
+
69
+ module.exports = {
70
+ SenderKeyDistributionMessage
71
+ }
@@ -1,19 +1,19 @@
1
- import { CiphertextMessage } from './ciphertext-message.js';
1
+ import { CiphertextMessage } from './ciphertext-message'
2
+
2
3
  export declare class SenderKeyMessage extends CiphertextMessage {
3
- private readonly SIGNATURE_LENGTH;
4
- private readonly messageVersion;
5
- private readonly keyId;
6
- private readonly iteration;
7
- private readonly ciphertext;
8
- private readonly signature;
9
- private readonly serialized;
10
- constructor(keyId?: number | null, iteration?: number | null, ciphertext?: Uint8Array | null, signatureKey?: Uint8Array | null, serialized?: Uint8Array | null);
11
- getKeyId(): number;
12
- getIteration(): number;
13
- getCipherText(): Uint8Array;
14
- verifySignature(signatureKey: Uint8Array): void;
15
- private getSignature;
16
- serialize(): Uint8Array;
17
- getType(): number;
18
- }
19
- //# sourceMappingURL=sender-key-message.d.ts.map
4
+ private readonly SIGNATURE_LENGTH
5
+ private readonly messageVersion
6
+ private readonly keyId
7
+ private readonly iteration
8
+ private readonly ciphertext
9
+ private readonly signature
10
+ private readonly serialized
11
+ constructor(keyId?: number | null, iteration?: number | null, ciphertext?: Uint8Array | null, signatureKey?: Uint8Array | null, serialized?: Uint8Array | null)
12
+ getKeyId(): number
13
+ getIteration(): number
14
+ getCipherText(): Uint8Array
15
+ verifySignature(signatureKey: Uint8Array): void
16
+ private getSignature
17
+ serialize(): Uint8Array
18
+ getType(): number
19
+ }