@neelegirl/baileys 1.5.3 → 1.5.5

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 (224) hide show
  1. package/README.md +16 -195
  2. package/index.js +38 -0
  3. package/package.json +16 -96
  4. package/LICENSE +0 -21
  5. package/WAProto/WAProto.proto +0 -5308
  6. package/WAProto/index.d.ts +0 -61295
  7. package/WAProto/index.js +0 -189754
  8. package/lib/Defaults/baileys-version.json +0 -3
  9. package/lib/Defaults/index.d.ts +0 -78
  10. package/lib/Defaults/index.js +0 -149
  11. package/lib/Defaults/phonenumber-mcc.json +0 -223
  12. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  13. package/lib/Signal/WASignalGroup/ciphertext-message.d.ts +0 -9
  14. package/lib/Signal/WASignalGroup/ciphertext-message.js +0 -19
  15. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  16. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  17. package/lib/Signal/WASignalGroup/group-session-builder.d.ts +0 -17
  18. package/lib/Signal/WASignalGroup/group-session-builder.js +0 -72
  19. package/lib/Signal/WASignalGroup/group.proto +0 -42
  20. package/lib/Signal/WASignalGroup/group_cipher.d.ts +0 -19
  21. package/lib/Signal/WASignalGroup/group_cipher.js +0 -111
  22. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  23. package/lib/Signal/WASignalGroup/index.d.ts +0 -11
  24. package/lib/Signal/WASignalGroup/index.js +0 -61
  25. package/lib/Signal/WASignalGroup/keyhelper.d.ts +0 -16
  26. package/lib/Signal/WASignalGroup/keyhelper.js +0 -66
  27. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  28. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  29. package/lib/Signal/WASignalGroup/readme.md +0 -6
  30. package/lib/Signal/WASignalGroup/sender-chain-key.d.ts +0 -14
  31. package/lib/Signal/WASignalGroup/sender-chain-key.js +0 -47
  32. package/lib/Signal/WASignalGroup/sender-key-distribution-message.d.ts +0 -17
  33. package/lib/Signal/WASignalGroup/sender-key-distribution-message.js +0 -71
  34. package/lib/Signal/WASignalGroup/sender-key-message.d.ts +0 -19
  35. package/lib/Signal/WASignalGroup/sender-key-message.js +0 -73
  36. package/lib/Signal/WASignalGroup/sender-key-name.d.ts +0 -19
  37. package/lib/Signal/WASignalGroup/sender-key-name.js +0 -59
  38. package/lib/Signal/WASignalGroup/sender-key-record.d.ts +0 -32
  39. package/lib/Signal/WASignalGroup/sender-key-record.js +0 -58
  40. package/lib/Signal/WASignalGroup/sender-key-state.d.ts +0 -44
  41. package/lib/Signal/WASignalGroup/sender-key-state.js +0 -147
  42. package/lib/Signal/WASignalGroup/sender-message-key.d.ts +0 -11
  43. package/lib/Signal/WASignalGroup/sender-message-key.js +0 -33
  44. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  45. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  46. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  47. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  48. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  49. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  50. package/lib/Signal/WASignalGroup/sender_message_key.js +0 -39
  51. package/lib/Signal/libsignal.d.ts +0 -8
  52. package/lib/Signal/libsignal.js +0 -391
  53. package/lib/Signal/lid-mapping.d.ts +0 -28
  54. package/lib/Signal/lid-mapping.js +0 -184
  55. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  56. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  57. package/lib/Socket/Client/index.d.ts +0 -2
  58. package/lib/Socket/Client/index.js +0 -22
  59. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  60. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  61. package/lib/Socket/Client/types.d.ts +0 -16
  62. package/lib/Socket/Client/types.js +0 -18
  63. package/lib/Socket/Client/websocket.d.ts +0 -13
  64. package/lib/Socket/Client/websocket.js +0 -62
  65. package/lib/Socket/business.d.ts +0 -187
  66. package/lib/Socket/business.js +0 -415
  67. package/lib/Socket/chats.d.ts +0 -97
  68. package/lib/Socket/chats.js +0 -1118
  69. package/lib/Socket/communities.d.ts +0 -223
  70. package/lib/Socket/communities.js +0 -433
  71. package/lib/Socket/groups.d.ts +0 -129
  72. package/lib/Socket/groups.js +0 -360
  73. package/lib/Socket/index.d.ts +0 -191
  74. package/lib/Socket/index.js +0 -24
  75. package/lib/Socket/messages-recv.d.ts +0 -174
  76. package/lib/Socket/messages-recv.js +0 -1506
  77. package/lib/Socket/messages-send.d.ts +0 -165
  78. package/lib/Socket/messages-send.js +0 -1785
  79. package/lib/Socket/mex.d.ts +0 -2
  80. package/lib/Socket/mex.js +0 -47
  81. package/lib/Socket/newsletter.d.ts +0 -145
  82. package/lib/Socket/newsletter.js +0 -295
  83. package/lib/Socket/socket.d.ts +0 -45
  84. package/lib/Socket/socket.js +0 -934
  85. package/lib/Socket/usync.d.ts +0 -37
  86. package/lib/Socket/usync.js +0 -83
  87. package/lib/Store/index.d.ts +0 -4
  88. package/lib/Store/index.js +0 -24
  89. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  90. package/lib/Store/make-cache-manager-store.js +0 -90
  91. package/lib/Store/make-in-memory-store.d.ts +0 -123
  92. package/lib/Store/make-in-memory-store.js +0 -429
  93. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  94. package/lib/Store/make-ordered-dictionary.js +0 -86
  95. package/lib/Store/object-repository.d.ts +0 -10
  96. package/lib/Store/object-repository.js +0 -31
  97. package/lib/Types/Auth.d.ts +0 -121
  98. package/lib/Types/Auth.js +0 -3
  99. package/lib/Types/Bussines.js +0 -3
  100. package/lib/Types/Bussiness.d.ts +0 -28
  101. package/lib/Types/Call.d.ts +0 -14
  102. package/lib/Types/Call.js +0 -3
  103. package/lib/Types/Chat.d.ts +0 -143
  104. package/lib/Types/Chat.js +0 -9
  105. package/lib/Types/Contact.d.ts +0 -23
  106. package/lib/Types/Contact.js +0 -3
  107. package/lib/Types/Events.d.ts +0 -226
  108. package/lib/Types/Events.js +0 -3
  109. package/lib/Types/GroupMetadata.d.ts +0 -66
  110. package/lib/Types/GroupMetadata.js +0 -3
  111. package/lib/Types/Label.d.ts +0 -48
  112. package/lib/Types/Label.js +0 -31
  113. package/lib/Types/LabelAssociation.d.ts +0 -35
  114. package/lib/Types/LabelAssociation.js +0 -13
  115. package/lib/Types/Message.d.ts +0 -484
  116. package/lib/Types/Message.js +0 -19
  117. package/lib/Types/MexUpdates.d.ts +0 -9
  118. package/lib/Types/MexUpdates.js +0 -18
  119. package/lib/Types/Newsletter.d.ts +0 -109
  120. package/lib/Types/Newsletter.js +0 -40
  121. package/lib/Types/Product.d.ts +0 -92
  122. package/lib/Types/Product.js +0 -3
  123. package/lib/Types/Signal.d.ts +0 -98
  124. package/lib/Types/Signal.js +0 -3
  125. package/lib/Types/Socket.d.ts +0 -141
  126. package/lib/Types/Socket.js +0 -3
  127. package/lib/Types/State.d.ts +0 -41
  128. package/lib/Types/State.js +0 -14
  129. package/lib/Types/USync.d.ts +0 -26
  130. package/lib/Types/USync.js +0 -3
  131. package/lib/Types/index.d.ts +0 -80
  132. package/lib/Types/index.js +0 -50
  133. package/lib/Utils/auth-utils.d.ts +0 -21
  134. package/lib/Utils/auth-utils.js +0 -528
  135. package/lib/Utils/baileys-event-stream.d.ts +0 -18
  136. package/lib/Utils/baileys-event-stream.js +0 -70
  137. package/lib/Utils/business.d.ts +0 -29
  138. package/lib/Utils/business.js +0 -255
  139. package/lib/Utils/chat-utils.d.ts +0 -82
  140. package/lib/Utils/chat-utils.js +0 -809
  141. package/lib/Utils/crypto.d.ts +0 -56
  142. package/lib/Utils/crypto.js +0 -189
  143. package/lib/Utils/decode-wa-message.d.ts +0 -53
  144. package/lib/Utils/decode-wa-message.js +0 -323
  145. package/lib/Utils/event-buffer.d.ts +0 -39
  146. package/lib/Utils/event-buffer.js +0 -595
  147. package/lib/Utils/generics.d.ts +0 -131
  148. package/lib/Utils/generics.js +0 -630
  149. package/lib/Utils/history.d.ts +0 -23
  150. package/lib/Utils/history.js +0 -104
  151. package/lib/Utils/index.d.ts +0 -20
  152. package/lib/Utils/index.js +0 -40
  153. package/lib/Utils/link-preview.d.ts +0 -23
  154. package/lib/Utils/link-preview.js +0 -120
  155. package/lib/Utils/logger.d.ts +0 -13
  156. package/lib/Utils/logger.js +0 -7
  157. package/lib/Utils/lt-hash.d.ts +0 -14
  158. package/lib/Utils/lt-hash.js +0 -58
  159. package/lib/Utils/make-mutex.d.ts +0 -9
  160. package/lib/Utils/make-mutex.js +0 -49
  161. package/lib/Utils/message-retry-manager.d.ts +0 -88
  162. package/lib/Utils/message-retry-manager.js +0 -160
  163. package/lib/Utils/messages-media.d.ts +0 -135
  164. package/lib/Utils/messages-media.js +0 -869
  165. package/lib/Utils/messages.d.ts +0 -105
  166. package/lib/Utils/messages.js +0 -1745
  167. package/lib/Utils/noise-handler.d.ts +0 -21
  168. package/lib/Utils/noise-handler.js +0 -165
  169. package/lib/Utils/process-message.d.ts +0 -49
  170. package/lib/Utils/process-message.js +0 -427
  171. package/lib/Utils/signal.d.ts +0 -42
  172. package/lib/Utils/signal.js +0 -166
  173. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  174. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  175. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -18
  176. package/lib/Utils/use-multi-file-auth-state.js +0 -238
  177. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  178. package/lib/Utils/use-single-file-auth-state.js +0 -80
  179. package/lib/Utils/validate-connection.d.ts +0 -13
  180. package/lib/Utils/validate-connection.js +0 -220
  181. package/lib/WABinary/constants.d.ts +0 -30
  182. package/lib/WABinary/constants.js +0 -1316
  183. package/lib/WABinary/decode.d.ts +0 -9
  184. package/lib/WABinary/decode.js +0 -288
  185. package/lib/WABinary/encode.d.ts +0 -3
  186. package/lib/WABinary/encode.js +0 -265
  187. package/lib/WABinary/generic-utils.d.ts +0 -28
  188. package/lib/WABinary/generic-utils.js +0 -142
  189. package/lib/WABinary/index.d.ts +0 -5
  190. package/lib/WABinary/index.js +0 -25
  191. package/lib/WABinary/jid-utils.d.ts +0 -58
  192. package/lib/WABinary/jid-utils.js +0 -104
  193. package/lib/WABinary/types.d.ts +0 -22
  194. package/lib/WABinary/types.js +0 -3
  195. package/lib/WAM/BinaryInfo.d.ts +0 -16
  196. package/lib/WAM/BinaryInfo.js +0 -17
  197. package/lib/WAM/constants.d.ts +0 -47
  198. package/lib/WAM/constants.js +0 -15371
  199. package/lib/WAM/encode.d.ts +0 -3
  200. package/lib/WAM/encode.js +0 -164
  201. package/lib/WAM/index.d.ts +0 -3
  202. package/lib/WAM/index.js +0 -23
  203. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  204. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  205. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  206. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -36
  207. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -26
  208. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -62
  209. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -14
  210. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -35
  211. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
  212. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -38
  213. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -14
  214. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -46
  215. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  216. package/lib/WAUSync/Protocols/index.js +0 -26
  217. package/lib/WAUSync/USyncQuery.d.ts +0 -31
  218. package/lib/WAUSync/USyncQuery.js +0 -92
  219. package/lib/WAUSync/USyncUser.d.ts +0 -12
  220. package/lib/WAUSync/USyncUser.js +0 -30
  221. package/lib/WAUSync/index.d.ts +0 -3
  222. package/lib/WAUSync/index.js +0 -23
  223. package/lib/index.d.ts +0 -13
  224. package/lib/index.js +0 -33
@@ -1,78 +0,0 @@
1
- const CiphertextMessage = require('./ciphertext_message');
2
- const protobufs = require('./protobufs');
3
-
4
- class SenderKeyDistributionMessage extends CiphertextMessage {
5
- constructor(
6
- id = null,
7
- iteration = null,
8
- chainKey = null,
9
- signatureKey = null,
10
- serialized = null
11
- ) {
12
- super();
13
- if (serialized) {
14
- try {
15
- const version = serialized[0];
16
- const message = serialized.slice(1);
17
-
18
- const distributionMessage = protobufs.SenderKeyDistributionMessage.decode(
19
- message
20
- ).toJSON();
21
- this.serialized = serialized;
22
- this.id = distributionMessage.id;
23
- this.iteration = distributionMessage.iteration;
24
- this.chainKey = distributionMessage.chainKey;
25
- this.signatureKey = distributionMessage.signingKey;
26
- } catch (e) {
27
- throw new Error(e);
28
- }
29
- } else {
30
- const version = this.intsToByteHighAndLow(this.CURRENT_VERSION, this.CURRENT_VERSION);
31
- this.id = id;
32
- this.iteration = iteration;
33
- this.chainKey = chainKey;
34
- this.signatureKey = signatureKey;
35
- const message = protobufs.SenderKeyDistributionMessage.encode(
36
- protobufs.SenderKeyDistributionMessage.create({
37
- id,
38
- iteration,
39
- chainKey,
40
- signingKey: this.signatureKey,
41
- })
42
- ).finish();
43
- this.serialized = Buffer.concat([Buffer.from([version]), message]);
44
- }
45
- }
46
-
47
- intsToByteHighAndLow(highValue, lowValue) {
48
- return (((highValue << 4) | lowValue) & 0xff) % 256;
49
- }
50
-
51
- serialize() {
52
- return this.serialized;
53
- }
54
-
55
- getType() {
56
- return this.SENDERKEY_DISTRIBUTION_TYPE;
57
- }
58
-
59
- getIteration() {
60
- return this.iteration;
61
- }
62
-
63
- getChainKey() {
64
- return typeof this.chainKey === 'string' ? Buffer.from(this.chainKey, 'base64') : this.chainKey;
65
- }
66
-
67
- getSignatureKey() {
68
- return typeof this.signatureKey === 'string'
69
- ? Buffer.from(this.signatureKey, 'base64')
70
- : this.signatureKey;
71
- }
72
-
73
- getId() {
74
- return this.id;
75
- }
76
- }
77
-
78
- module.exports = SenderKeyDistributionMessage;
@@ -1,92 +0,0 @@
1
- const CiphertextMessage = require('./ciphertext_message');
2
- const curve = require('@neelegirl/libsignal/src/curve');
3
- const protobufs = require('./protobufs');
4
-
5
- class SenderKeyMessage extends CiphertextMessage {
6
- SIGNATURE_LENGTH = 64;
7
-
8
- constructor(
9
- keyId = null,
10
- iteration = null,
11
- ciphertext = null,
12
- signatureKey = null,
13
- serialized = null
14
- ) {
15
- super();
16
- if (serialized) {
17
- const version = serialized[0];
18
- const message = serialized.slice(1, serialized.length - this.SIGNATURE_LENGTH);
19
- const signature = serialized.slice(-1 * this.SIGNATURE_LENGTH);
20
- const senderKeyMessage = protobufs.SenderKeyMessage.decode(message).toJSON();
21
- senderKeyMessage.ciphertext = Buffer.from(senderKeyMessage.ciphertext, 'base64');
22
-
23
- this.serialized = serialized;
24
- this.messageVersion = (version & 0xff) >> 4;
25
-
26
- this.keyId = senderKeyMessage.id;
27
- this.iteration = senderKeyMessage.iteration;
28
- this.ciphertext = senderKeyMessage.ciphertext;
29
- this.signature = signature;
30
- } else {
31
- const version = (((this.CURRENT_VERSION << 4) | this.CURRENT_VERSION) & 0xff) % 256;
32
- ciphertext = Buffer.from(ciphertext); // .toString('base64');
33
- const message = protobufs.SenderKeyMessage.encode(
34
- protobufs.SenderKeyMessage.create({
35
- id: keyId,
36
- iteration,
37
- ciphertext,
38
- })
39
- ).finish();
40
-
41
- const signature = this.getSignature(
42
- signatureKey,
43
- Buffer.concat([Buffer.from([version]), message])
44
- );
45
- this.serialized = Buffer.concat([Buffer.from([version]), message, Buffer.from(signature)]);
46
- this.messageVersion = this.CURRENT_VERSION;
47
- this.keyId = keyId;
48
- this.iteration = iteration;
49
- this.ciphertext = ciphertext;
50
- this.signature = signature;
51
- }
52
- }
53
-
54
- getKeyId() {
55
- return this.keyId;
56
- }
57
-
58
- getIteration() {
59
- return this.iteration;
60
- }
61
-
62
- getCipherText() {
63
- return this.ciphertext;
64
- }
65
-
66
- verifySignature(signatureKey) {
67
- const part1 = this.serialized.slice(0, this.serialized.length - this.SIGNATURE_LENGTH);
68
- const part2 = this.serialized.slice(-1 * this.SIGNATURE_LENGTH);
69
- const res = curve.verifySignature(signatureKey, part1, part2);
70
- if (!res) throw new Error('Invalid signature!');
71
- }
72
-
73
- getSignature(signatureKey, serialized) {
74
- const signature = Buffer.from(
75
- curve.calculateSignature(
76
- signatureKey,
77
- serialized
78
- )
79
- );
80
- return signature;
81
- }
82
-
83
- serialize() {
84
- return this.serialized;
85
- }
86
-
87
- getType() {
88
- return 4;
89
- }
90
- }
91
-
92
- module.exports = SenderKeyMessage;
@@ -1,70 +0,0 @@
1
- function isNull(str) {
2
- return str === null || str.value === '';
3
- }
4
-
5
- /**
6
- * java String hashCode 的实现
7
- * @param strKey
8
- * @return intValue
9
- */
10
- function intValue(num) {
11
- const MAX_VALUE = 0x7fffffff;
12
- const MIN_VALUE = -0x80000000;
13
- if (num > MAX_VALUE || num < MIN_VALUE) {
14
- // eslint-disable-next-line
15
- return (num &= 0xffffffff);
16
- }
17
- return num;
18
- }
19
-
20
- function hashCode(strKey) {
21
- let hash = 0;
22
- if (!isNull(strKey)) {
23
- for (let i = 0; i < strKey.length; i++) {
24
- hash = hash * 31 + strKey.charCodeAt(i);
25
- hash = intValue(hash);
26
- }
27
- }
28
- return hash;
29
- }
30
-
31
- /**
32
- * 将js页面的number类型转换为java的int类型
33
- * @param num
34
- * @return intValue
35
- */
36
-
37
- class SenderKeyName {
38
- constructor(groupId, sender) {
39
- this.groupId = groupId;
40
- this.sender = sender;
41
- }
42
-
43
- getGroupId() {
44
- return this.groupId;
45
- }
46
-
47
- getSender() {
48
- return this.sender;
49
- }
50
-
51
- serialize() {
52
- return `${this.groupId}::${this.sender.id}::${this.sender.deviceId}`;
53
- }
54
-
55
- toString() {
56
- return this.serialize();
57
- }
58
-
59
- equals(other) {
60
- if (other === null) return false;
61
- if (!(other instanceof SenderKeyName)) return false;
62
- return this.groupId === other.groupId && this.sender.toString() === other.sender.toString();
63
- }
64
-
65
- hashCode() {
66
- return hashCode(this.groupId) ^ hashCode(this.sender.toString());
67
- }
68
- }
69
-
70
- module.exports = SenderKeyName;
@@ -1,56 +0,0 @@
1
- const SenderKeyState = require('./sender_key_state');
2
-
3
- class SenderKeyRecord {
4
- MAX_STATES = 5;
5
-
6
- constructor(serialized) {
7
- this.senderKeyStates = [];
8
-
9
- if (serialized) {
10
- const list = serialized;
11
- for (let i = 0; i < list.length; i++) {
12
- const structure = list[i];
13
- this.senderKeyStates.push(
14
- new SenderKeyState(null, null, null, null, null, null, structure)
15
- );
16
- }
17
- }
18
- }
19
-
20
- isEmpty() {
21
- return this.senderKeyStates.length === 0;
22
- }
23
-
24
- getSenderKeyState(keyId) {
25
- if (!keyId && this.senderKeyStates.length) return this.senderKeyStates[this.senderKeyStates.length - 1];
26
- for (let i = 0; i < this.senderKeyStates.length; i++) {
27
- const state = this.senderKeyStates[i];
28
- if (state.getKeyId() === keyId) {
29
- return state;
30
- }
31
- }
32
- }
33
-
34
- addSenderKeyState(id, iteration, chainKey, signatureKey) {
35
- this.senderKeyStates.push(new SenderKeyState(id, iteration, chainKey, null, signatureKey));
36
- if (this.senderKeyStates.length > 5) {
37
- this.senderKeyStates.shift()
38
- }
39
- }
40
-
41
- setSenderKeyState(id, iteration, chainKey, keyPair) {
42
- this.senderKeyStates.length = 0;
43
- this.senderKeyStates.push(new SenderKeyState(id, iteration, chainKey, keyPair));
44
- }
45
-
46
- serialize() {
47
- const recordStructure = [];
48
- for (let i = 0; i < this.senderKeyStates.length; i++) {
49
- const senderKeyState = this.senderKeyStates[i];
50
- recordStructure.push(senderKeyState.getStructure());
51
- }
52
- return recordStructure;
53
- }
54
- }
55
-
56
- module.exports = SenderKeyRecord;
@@ -1,129 +0,0 @@
1
- const SenderChainKey = require('./sender_chain_key');
2
- const SenderMessageKey = require('./sender_message_key');
3
-
4
- const protobufs = require('./protobufs');
5
-
6
- class SenderKeyState {
7
- MAX_MESSAGE_KEYS = 2000;
8
-
9
- constructor(
10
- id = null,
11
- iteration = null,
12
- chainKey = null,
13
- signatureKeyPair = null,
14
- signatureKeyPublic = null,
15
- signatureKeyPrivate = null,
16
- senderKeyStateStructure = null
17
- ) {
18
- if (senderKeyStateStructure) {
19
- this.senderKeyStateStructure = senderKeyStateStructure;
20
- } else {
21
- if (signatureKeyPair) {
22
- signatureKeyPublic = signatureKeyPair.public;
23
- signatureKeyPrivate = signatureKeyPair.private;
24
- }
25
-
26
- chainKey = typeof chainKey === 'string' ? Buffer.from(chainKey, 'base64') : chainKey;
27
- this.senderKeyStateStructure = protobufs.SenderKeyStateStructure.create();
28
- const senderChainKeyStructure = protobufs.SenderChainKey.create();
29
- senderChainKeyStructure.iteration = iteration;
30
- senderChainKeyStructure.seed = chainKey;
31
- this.senderKeyStateStructure.senderChainKey = senderChainKeyStructure;
32
-
33
- const signingKeyStructure = protobufs.SenderSigningKey.create();
34
- signingKeyStructure.public =
35
- typeof signatureKeyPublic === 'string' ?
36
- Buffer.from(signatureKeyPublic, 'base64') :
37
- signatureKeyPublic;
38
- if (signatureKeyPrivate) {
39
- signingKeyStructure.private =
40
- typeof signatureKeyPrivate === 'string' ?
41
- Buffer.from(signatureKeyPrivate, 'base64') :
42
- signatureKeyPrivate;
43
- }
44
- this.senderKeyStateStructure.senderKeyId = id;
45
- this.senderChainKey = senderChainKeyStructure;
46
- this.senderKeyStateStructure.senderSigningKey = signingKeyStructure;
47
- }
48
- this.senderKeyStateStructure.senderMessageKeys =
49
- this.senderKeyStateStructure.senderMessageKeys || [];
50
- }
51
-
52
- SenderKeyState(senderKeyStateStructure) {
53
- this.senderKeyStateStructure = senderKeyStateStructure;
54
- }
55
-
56
- getKeyId() {
57
- return this.senderKeyStateStructure.senderKeyId;
58
- }
59
-
60
- getSenderChainKey() {
61
- return new SenderChainKey(
62
- this.senderKeyStateStructure.senderChainKey.iteration,
63
- this.senderKeyStateStructure.senderChainKey.seed
64
- );
65
- }
66
-
67
- setSenderChainKey(chainKey) {
68
- const senderChainKeyStructure = protobufs.SenderChainKey.create({
69
- iteration: chainKey.getIteration(),
70
- seed: chainKey.getSeed(),
71
- });
72
- this.senderKeyStateStructure.senderChainKey = senderChainKeyStructure;
73
- }
74
-
75
- getSigningKeyPublic() {
76
- return typeof this.senderKeyStateStructure.senderSigningKey.public === 'string' ?
77
- Buffer.from(this.senderKeyStateStructure.senderSigningKey.public, 'base64') :
78
- this.senderKeyStateStructure.senderSigningKey.public;
79
- }
80
-
81
- getSigningKeyPrivate() {
82
- return typeof this.senderKeyStateStructure.senderSigningKey.private === 'string' ?
83
- Buffer.from(this.senderKeyStateStructure.senderSigningKey.private, 'base64') :
84
- this.senderKeyStateStructure.senderSigningKey.private;
85
- }
86
-
87
- hasSenderMessageKey(iteration) {
88
- const list = this.senderKeyStateStructure.senderMessageKeys;
89
- for (let o = 0; o < list.length; o++) {
90
- const senderMessageKey = list[o];
91
- if (senderMessageKey.iteration === iteration) return true;
92
- }
93
- return false;
94
- }
95
-
96
- addSenderMessageKey(senderMessageKey) {
97
- const senderMessageKeyStructure = protobufs.SenderKeyStateStructure.create({
98
- iteration: senderMessageKey.getIteration(),
99
- seed: senderMessageKey.getSeed(),
100
- });
101
- this.senderKeyStateStructure.senderMessageKeys.push(senderMessageKeyStructure);
102
-
103
- if (this.senderKeyStateStructure.senderMessageKeys.length > this.MAX_MESSAGE_KEYS) {
104
- this.senderKeyStateStructure.senderMessageKeys.shift();
105
- }
106
- }
107
-
108
- removeSenderMessageKey(iteration) {
109
- let result = null;
110
-
111
- this.senderKeyStateStructure.senderMessageKeys = this.senderKeyStateStructure.senderMessageKeys.filter(
112
- senderMessageKey => {
113
- if (senderMessageKey.iteration === iteration) result = senderMessageKey;
114
- return senderMessageKey.iteration !== iteration;
115
- }
116
- );
117
-
118
- if (result != null) {
119
- return new SenderMessageKey(result.iteration, result.seed);
120
- }
121
- return null;
122
- }
123
-
124
- getStructure() {
125
- return this.senderKeyStateStructure;
126
- }
127
- }
128
-
129
- module.exports = SenderKeyState;
@@ -1,39 +0,0 @@
1
- const { deriveSecrets } = require('@neelegirl/libsignal/src/crypto');
2
- class SenderMessageKey {
3
- iteration = 0;
4
-
5
- iv = Buffer.alloc(0);
6
-
7
- cipherKey = Buffer.alloc(0);
8
-
9
- seed = Buffer.alloc(0);
10
-
11
- constructor(iteration, seed) {
12
- const derivative = deriveSecrets(seed, Buffer.alloc(32), Buffer.from('WhisperGroup'));
13
- const keys = new Uint8Array(32);
14
- keys.set(new Uint8Array(derivative[0].slice(16)));
15
- keys.set(new Uint8Array(derivative[1].slice(0, 16)), 16);
16
- this.iv = Buffer.from(derivative[0].slice(0, 16));
17
- this.cipherKey = Buffer.from(keys.buffer);
18
-
19
- this.iteration = iteration;
20
- this.seed = seed;
21
- }
22
-
23
- getIteration() {
24
- return this.iteration;
25
- }
26
-
27
- getIv() {
28
- return this.iv;
29
- }
30
-
31
- getCipherKey() {
32
- return this.cipherKey;
33
- }
34
-
35
- getSeed() {
36
- return this.seed;
37
- }
38
- }
39
- module.exports = SenderMessageKey;
@@ -1,8 +0,0 @@
1
- import { SignalAuthState } from '../Types'
2
- import { SignalRepository } from '../Types/Signal'
3
-
4
- export declare function makeLibSignalRepository(auth: SignalAuthState, onWhatsAppFunc?: (...jids: string[]) => Promise<{
5
- jid: string
6
- exists: boolean
7
- lid: string
8
- }[] | undefined>): SignalRepository