amiudmodz 6.0.6 → 6.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -181
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +2 -0
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +3 -3
- package/lib/Signal/lid-mapping.d.ts.map +1 -1
- package/lib/Signal/lid-mapping.js +21 -14
- package/lib/Signal/lid-mapping.js.map +1 -1
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +88 -4
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Types/Auth.d.ts +10 -0
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +2 -1
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/Socket.d.ts +13 -0
- package/lib/Types/Socket.d.ts.map +1 -1
- package/lib/Types/State.d.ts +10 -0
- package/lib/Types/State.d.ts.map +1 -1
- package/lib/Types/State.js.map +1 -1
- package/lib/Utils/auth-utils.d.ts.map +1 -1
- package/lib/Utils/auth-utils.js +23 -8
- package/lib/Utils/auth-utils.js.map +1 -1
- package/lib/Utils/index.d.ts +2 -0
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +2 -0
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/shortcake-crypto.d.ts +60 -0
- package/lib/Utils/shortcake-crypto.d.ts.map +1 -0
- package/lib/Utils/shortcake-crypto.js +85 -0
- package/lib/Utils/shortcake-crypto.js.map +1 -0
- package/lib/Utils/shortcake.d.ts +50 -0
- package/lib/Utils/shortcake.d.ts.map +1 -0
- package/lib/Utils/shortcake.js +185 -0
- package/lib/Utils/shortcake.js.map +1 -0
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +2 -1
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/generic-utils.js +1 -1
- package/lib/WABinary/generic-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"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"}
|
package/lib/Utils/index.d.ts
CHANGED
|
@@ -22,4 +22,6 @@ export * from './browser-utils.js';
|
|
|
22
22
|
export * from './companion-reg-client-utils.js';
|
|
23
23
|
export * from './identity-change-handler.js';
|
|
24
24
|
export * from './stanza-ack.js';
|
|
25
|
+
export * from './shortcake-crypto.js';
|
|
26
|
+
export * from './shortcake.js';
|
|
25
27
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/Utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA"}
|
package/lib/Utils/index.js
CHANGED
|
@@ -22,4 +22,6 @@ export * from './browser-utils.js';
|
|
|
22
22
|
export * from './companion-reg-client-utils.js';
|
|
23
23
|
export * from './identity-change-handler.js';
|
|
24
24
|
export * from './stanza-ack.js';
|
|
25
|
+
export * from './shortcake-crypto.js';
|
|
26
|
+
export * from './shortcake.js';
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
package/lib/Utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { proto } from '../../WAProto/index.js';
|
|
2
|
+
import type { KeyPair } from '../Types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Decoded `PrimaryEphemeralIdentity` the primary device returns: its ephemeral
|
|
5
|
+
* X25519 public key (32B) and a 32B nonce used to derive the verification code.
|
|
6
|
+
*/
|
|
7
|
+
export interface ShortcakePrimaryEphemeralIdentity {
|
|
8
|
+
readonly publicKey: Uint8Array;
|
|
9
|
+
readonly nonce: Uint8Array;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Carries the companion's ephemeral X25519 private key (`keyPair.private`) and
|
|
13
|
+
* the pre-image `companionNonce`. Hold these in memory for the handshake only;
|
|
14
|
+
* never log or `JSON.stringify` an instance.
|
|
15
|
+
*/
|
|
16
|
+
export interface ShortcakeCompanionEphemeralIdentity {
|
|
17
|
+
/** Companion ephemeral X25519 keypair (private half kept for the ECDH). */
|
|
18
|
+
readonly keyPair: KeyPair;
|
|
19
|
+
/** 32 random bytes committed up-front, revealed only after the primary replies. */
|
|
20
|
+
readonly companionNonce: Uint8Array;
|
|
21
|
+
/** Encoded `CompanionEphemeralIdentity` proto (committed + sent in the prologue). */
|
|
22
|
+
readonly companionEphemeralIdentityBytes: Uint8Array;
|
|
23
|
+
/** `SHA-256(companionEphemeralIdentity ‖ companionNonce)`, the commitment hash. */
|
|
24
|
+
readonly commitmentHash: Uint8Array;
|
|
25
|
+
/** Encoded `ProloguePayload` proto ready for the `SetPasskeyPrologue` IQ. */
|
|
26
|
+
readonly prologuePayloadBytes: Uint8Array;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generates the companion's ephemeral identity + commitment for a Shortcake
|
|
30
|
+
* prologue. The companion publishes a commitment to its nonce now and reveals
|
|
31
|
+
* the nonce later (after the primary's identity arrives) so the primary cannot
|
|
32
|
+
* grind the verification code.
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateCompanionEphemeralIdentity(args: {
|
|
35
|
+
readonly ref: string;
|
|
36
|
+
readonly deviceType: proto.DeviceProps.PlatformType;
|
|
37
|
+
}): ShortcakeCompanionEphemeralIdentity;
|
|
38
|
+
/** Parses + validates a `PrimaryEphemeralIdentity` proto from the primary. */
|
|
39
|
+
export declare function decodePrimaryEphemeralIdentity(bytes: Uint8Array): ShortcakePrimaryEphemeralIdentity;
|
|
40
|
+
/**
|
|
41
|
+
* Derives the short verification code shown on both devices:
|
|
42
|
+
* `Crockford32( primaryNonce[0..5] XOR SHA-256(companionNonce ‖ primaryPubKey)[0..5] )`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function deriveVerificationCode(companionNonce: Uint8Array, primary: ShortcakePrimaryEphemeralIdentity): string;
|
|
45
|
+
/**
|
|
46
|
+
* Derives the AES-GCM key that protects the pairing request:
|
|
47
|
+
* `HKDF( X25519(companionPriv, primaryPub), salt="Companion Pairing <deviceType> with ref <ref>", info="Pairing Information Encryption Key" )`.
|
|
48
|
+
*/
|
|
49
|
+
export declare function deriveEncryptionKey(args: {
|
|
50
|
+
readonly companionPrivKey: Uint8Array;
|
|
51
|
+
readonly primaryPublicKey: Uint8Array;
|
|
52
|
+
readonly deviceType: proto.DeviceProps.PlatformType;
|
|
53
|
+
readonly ref: string;
|
|
54
|
+
}): Uint8Array;
|
|
55
|
+
/**
|
|
56
|
+
* Encrypts the pairing request plaintext under the derived key and returns the
|
|
57
|
+
* encoded `EncryptedPairingRequest` proto (random 12-byte IV).
|
|
58
|
+
*/
|
|
59
|
+
export declare function encryptPairingRequest(encryptionKey: Uint8Array, plaintext: Uint8Array): Uint8Array;
|
|
60
|
+
//# sourceMappingURL=shortcake-crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcake-crypto.d.ts","sourceRoot":"","sources":["../../src/Utils/shortcake-crypto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAavC;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IACjD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IACnD,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAA;IACnC,qFAAqF;IACrF,QAAQ,CAAC,+BAA+B,EAAE,UAAU,CAAA;IACpD,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAA;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,oBAAoB,EAAE,UAAU,CAAA;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAA;CACnD,GAAG,mCAAmC,CAwBtC;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,UAAU,GAAG,iCAAiC,CAanG;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,iCAAiC,GAAG,MAAM,CAQrH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAA;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB,GAAG,UAAU,CAIb;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAQlG"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { randomBytes } from 'crypto';
|
|
2
|
+
import { proto } from '../../WAProto/index.js';
|
|
3
|
+
import { aesEncryptGCM, Curve, hkdf, sha256 } from './crypto.js';
|
|
4
|
+
import { bytesToCrockford } from './generics.js';
|
|
5
|
+
const NONCE_BYTES = 32;
|
|
6
|
+
const VERIFICATION_CODE_BYTES = 5;
|
|
7
|
+
const GCM_IV_BYTES = 12;
|
|
8
|
+
const ENCRYPTION_KEY_BYTES = 32;
|
|
9
|
+
const EPHEMERAL_PUBLIC_KEY_BYTES = 32;
|
|
10
|
+
/** HKDF `info` for the pairing-request encryption key. */
|
|
11
|
+
const ENCRYPTION_KEY_INFO = 'Pairing Information Encryption Key';
|
|
12
|
+
/**
|
|
13
|
+
* Generates the companion's ephemeral identity + commitment for a Shortcake
|
|
14
|
+
* prologue. The companion publishes a commitment to its nonce now and reveals
|
|
15
|
+
* the nonce later (after the primary's identity arrives) so the primary cannot
|
|
16
|
+
* grind the verification code.
|
|
17
|
+
*/
|
|
18
|
+
export function generateCompanionEphemeralIdentity(args) {
|
|
19
|
+
const keyPair = Curve.generateKeyPair();
|
|
20
|
+
const companionNonce = randomBytes(NONCE_BYTES);
|
|
21
|
+
const companionEphemeralIdentityBytes = proto.CompanionEphemeralIdentity.encode({
|
|
22
|
+
publicKey: keyPair.public,
|
|
23
|
+
deviceType: args.deviceType,
|
|
24
|
+
ref: args.ref
|
|
25
|
+
}).finish();
|
|
26
|
+
const commitmentHash = sha256(Buffer.concat([companionEphemeralIdentityBytes, companionNonce]));
|
|
27
|
+
const prologuePayloadBytes = proto.ProloguePayload.encode({
|
|
28
|
+
companionEphemeralIdentity: companionEphemeralIdentityBytes,
|
|
29
|
+
commitment: { hash: commitmentHash }
|
|
30
|
+
}).finish();
|
|
31
|
+
return {
|
|
32
|
+
keyPair,
|
|
33
|
+
companionNonce,
|
|
34
|
+
companionEphemeralIdentityBytes,
|
|
35
|
+
commitmentHash,
|
|
36
|
+
prologuePayloadBytes
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Parses + validates a `PrimaryEphemeralIdentity` proto from the primary. */
|
|
40
|
+
export function decodePrimaryEphemeralIdentity(bytes) {
|
|
41
|
+
const decoded = proto.PrimaryEphemeralIdentity.decode(bytes);
|
|
42
|
+
const publicKey = decoded.publicKey;
|
|
43
|
+
const nonce = decoded.nonce;
|
|
44
|
+
if (!publicKey || publicKey.length !== EPHEMERAL_PUBLIC_KEY_BYTES) {
|
|
45
|
+
throw new Error('shortcake: PrimaryEphemeralIdentity.publicKey must be 32 bytes');
|
|
46
|
+
}
|
|
47
|
+
if (!nonce || nonce.length !== NONCE_BYTES) {
|
|
48
|
+
throw new Error('shortcake: PrimaryEphemeralIdentity.nonce must be 32 bytes');
|
|
49
|
+
}
|
|
50
|
+
return { publicKey, nonce };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Derives the short verification code shown on both devices:
|
|
54
|
+
* `Crockford32( primaryNonce[0..5] XOR SHA-256(companionNonce ‖ primaryPubKey)[0..5] )`.
|
|
55
|
+
*/
|
|
56
|
+
export function deriveVerificationCode(companionNonce, primary) {
|
|
57
|
+
const digest = sha256(Buffer.concat([companionNonce, primary.publicKey]));
|
|
58
|
+
const code = Buffer.alloc(VERIFICATION_CODE_BYTES);
|
|
59
|
+
for (let i = 0; i < VERIFICATION_CODE_BYTES; i += 1) {
|
|
60
|
+
code[i] = primary.nonce[i] ^ digest[i];
|
|
61
|
+
}
|
|
62
|
+
return bytesToCrockford(code);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Derives the AES-GCM key that protects the pairing request:
|
|
66
|
+
* `HKDF( X25519(companionPriv, primaryPub), salt="Companion Pairing <deviceType> with ref <ref>", info="Pairing Information Encryption Key" )`.
|
|
67
|
+
*/
|
|
68
|
+
export function deriveEncryptionKey(args) {
|
|
69
|
+
const shared = Curve.sharedKey(args.companionPrivKey, args.primaryPublicKey);
|
|
70
|
+
const salt = Buffer.from(`Companion Pairing ${String(args.deviceType)} with ref ${args.ref}`);
|
|
71
|
+
return hkdf(shared, ENCRYPTION_KEY_BYTES, { salt, info: ENCRYPTION_KEY_INFO });
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Encrypts the pairing request plaintext under the derived key and returns the
|
|
75
|
+
* encoded `EncryptedPairingRequest` proto (random 12-byte IV).
|
|
76
|
+
*/
|
|
77
|
+
export function encryptPairingRequest(encryptionKey, plaintext) {
|
|
78
|
+
if (encryptionKey.length !== ENCRYPTION_KEY_BYTES) {
|
|
79
|
+
throw new Error('shortcake: encryption key must be 32 bytes');
|
|
80
|
+
}
|
|
81
|
+
const iv = randomBytes(GCM_IV_BYTES);
|
|
82
|
+
const encryptedPayload = aesEncryptGCM(plaintext, encryptionKey, iv, Buffer.alloc(0));
|
|
83
|
+
return proto.EncryptedPairingRequest.encode({ encryptedPayload, iv }).finish();
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=shortcake-crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcake-crypto.js","sourceRoot":"","sources":["../../src/Utils/shortcake-crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,GAAG,EAAE,CAAA;AACtB,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACjC,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAM,0BAA0B,GAAG,EAAE,CAAA;AAErC,0DAA0D;AAC1D,MAAM,mBAAmB,GAAG,oCAAoC,CAAA;AA6BhE;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAAC,IAGlD;IACA,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;IACvC,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAE/C,MAAM,+BAA+B,GAAG,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAC/E,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;KACb,CAAC,CAAC,MAAM,EAAE,CAAA;IAEX,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,+BAA+B,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;IAE/F,MAAM,oBAAoB,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;QACzD,0BAA0B,EAAE,+BAA+B;QAC3D,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;KACpC,CAAC,CAAC,MAAM,EAAE,CAAA;IAEX,OAAO;QACN,OAAO;QACP,cAAc;QACd,+BAA+B;QAC/B,cAAc;QACd,oBAAoB;KACpB,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,8BAA8B,CAAC,KAAiB;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IAClF,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAA0B,EAAE,OAA0C;IAC5G,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;IACzC,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7F,OAAO,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAyB,EAAE,SAAqB;IACrF,IAAI,aAAa,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IACpC,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,OAAO,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { proto } from '../../WAProto/index.js';
|
|
2
|
+
import type { AuthenticationCreds } from '../Types/index.js';
|
|
3
|
+
import { type BinaryNode } from '../WABinary/index.js';
|
|
4
|
+
import type { ILogger } from './logger.js';
|
|
5
|
+
/**
|
|
6
|
+
* Externally-provided WebAuthn assertion. The passkey/credential source lives
|
|
7
|
+
* OUTSIDE the protocol layer: the caller signs the server's request options
|
|
8
|
+
* however it likes (real authenticator, virtual authenticator, relay…) and
|
|
9
|
+
* hands back the raw assertion + credential id.
|
|
10
|
+
*/
|
|
11
|
+
export type ShortcakeAssertionSigner = (requestOptions: Uint8Array) => Promise<{
|
|
12
|
+
readonly credentialId: Uint8Array;
|
|
13
|
+
readonly webauthnAssertion: Uint8Array;
|
|
14
|
+
}>;
|
|
15
|
+
export interface ShortcakeFlowOptions {
|
|
16
|
+
readonly logger: ILogger;
|
|
17
|
+
/** Send an IQ and await its result (error-free assertion done by the caller's query). */
|
|
18
|
+
readonly query: (node: BinaryNode, timeoutMs?: number) => Promise<BinaryNode>;
|
|
19
|
+
/** WebAuthn signer (passkey assertion), external, keeps credentials out of the protocol. */
|
|
20
|
+
readonly signAssertion: ShortcakeAssertionSigner;
|
|
21
|
+
/** Read the current credentials (noise/identity keys + ADV secret). */
|
|
22
|
+
readonly getCreds: () => AuthenticationCreds;
|
|
23
|
+
/** Persist a credentials patch (used to rotate the ADV secret on a prologue). */
|
|
24
|
+
readonly updateCreds: (patch: Partial<AuthenticationCreds>) => void;
|
|
25
|
+
/** Companion platform reported in the ephemeral identity. */
|
|
26
|
+
readonly deviceType?: proto.DeviceProps.PlatformType;
|
|
27
|
+
/** Verification code derived after the primary replies. */
|
|
28
|
+
readonly emitVerificationCode?: (code: string) => void;
|
|
29
|
+
/** Prologue accepted by the server; now waiting for the primary. */
|
|
30
|
+
readonly emitPrologueSent?: () => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Drives the companion side of the WhatsApp "Shortcake" passkey-linking
|
|
34
|
+
* handshake (the `xmlns="md"` IQ exchange + commit/reveal ECDH). It owns the
|
|
35
|
+
* wire protocol and crypto only; the WebAuthn assertion and the registration
|
|
36
|
+
* payload are injected by the caller.
|
|
37
|
+
*/
|
|
38
|
+
export declare const makeShortcakeFlow: (opts: ShortcakeFlowOptions) => {
|
|
39
|
+
handleIncomingNotification: (node: BinaryNode) => Promise<boolean>;
|
|
40
|
+
executePrologue: (args?: {
|
|
41
|
+
readonly requestOptions?: Uint8Array;
|
|
42
|
+
readonly pairingHandoffProof?: Uint8Array;
|
|
43
|
+
}) => Promise<void>;
|
|
44
|
+
confirmVerificationCode: () => Promise<void>;
|
|
45
|
+
hasSession: () => boolean;
|
|
46
|
+
getVerificationCode: () => string | null;
|
|
47
|
+
clearSession: () => void;
|
|
48
|
+
};
|
|
49
|
+
export type ShortcakeFlow = ReturnType<typeof makeShortcakeFlow>;
|
|
50
|
+
//# sourceMappingURL=shortcake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcake.d.ts","sourceRoot":"","sources":["../../src/Utils/shortcake.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACN,KAAK,UAAU,EAKf,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAUvC;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACtC,cAAc,EAAE,UAAU,KACtB,OAAO,CAAC;IAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAA;CAAE,CAAC,CAAA;AA6B3F,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7E,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAA;IAChD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,mBAAmB,CAAA;IAC5C,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IACnE,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAA;IACpD,2DAA2D;IAC3D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,oEAAoE;IACpE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;CACtC;AAQD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,oBAAoB;uCAyKX,UAAU,KAAG,OAAO,CAAC,OAAO,CAAC;6BA3ItE;QACL,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAA;QACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAA;KACzC,KACC,OAAO,CAAC,IAAI,CAAC;mCAwE0B,OAAO,CAAC,IAAI,CAAC;;;;CAsFvD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { randomBytes } from 'crypto';
|
|
2
|
+
import { proto } from '../../WAProto/index.js';
|
|
3
|
+
import { getBinaryNodeChild, getBinaryNodeChildBuffer, getBinaryNodeChildString, S_WHATSAPP_NET } from '../WABinary/index.js';
|
|
4
|
+
import { hkdf, hmacSign } from './crypto.js';
|
|
5
|
+
import { decodePrimaryEphemeralIdentity, deriveEncryptionKey, deriveVerificationCode, encryptPairingRequest, generateCompanionEphemeralIdentity } from './shortcake-crypto.js';
|
|
6
|
+
/** HKDF info for the pairing handoff HMAC key (derived from the ADV secret). */
|
|
7
|
+
const HANDOFF_KEY_INFO = 'shortcake-passkey-handoff-v1';
|
|
8
|
+
const HANDOFF_KEY_TTL_MS = 5 * 60 * 1000;
|
|
9
|
+
const Stage = Object.freeze({
|
|
10
|
+
WaitingForPrimaryIdentity: 'waiting_for_primary_identity',
|
|
11
|
+
WaitingForConfirmation: 'waiting_for_confirmation',
|
|
12
|
+
WaitingForPairing: 'waiting_for_pairing'
|
|
13
|
+
});
|
|
14
|
+
const mdIq = (type, content) => ({
|
|
15
|
+
tag: 'iq',
|
|
16
|
+
attrs: { to: S_WHATSAPP_NET, type, xmlns: 'md' },
|
|
17
|
+
content
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Drives the companion side of the WhatsApp "Shortcake" passkey-linking
|
|
21
|
+
* handshake (the `xmlns="md"` IQ exchange + commit/reveal ECDH). It owns the
|
|
22
|
+
* wire protocol and crypto only; the WebAuthn assertion and the registration
|
|
23
|
+
* payload are injected by the caller.
|
|
24
|
+
*/
|
|
25
|
+
export const makeShortcakeFlow = (opts) => {
|
|
26
|
+
let session = null;
|
|
27
|
+
let handoffKey = null;
|
|
28
|
+
const requestPasskeyRequestOptions = async () => {
|
|
29
|
+
const response = await opts.query(mdIq('get', [{ tag: 'passkey_request_options', attrs: {} }]));
|
|
30
|
+
const options = getBinaryNodeChildBuffer(response, 'passkey_request_options');
|
|
31
|
+
if (!options) {
|
|
32
|
+
throw new Error('shortcake: get-passkey-request-options response missing options');
|
|
33
|
+
}
|
|
34
|
+
return options;
|
|
35
|
+
};
|
|
36
|
+
const requestRef = async () => {
|
|
37
|
+
const response = await opts.query(mdIq('get', [{ tag: 'ref', attrs: {} }]));
|
|
38
|
+
const ref = getBinaryNodeChildString(response, 'ref');
|
|
39
|
+
if (!ref) {
|
|
40
|
+
throw new Error('shortcake: get-ref response missing ref');
|
|
41
|
+
}
|
|
42
|
+
return ref;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Runs the prologue: fetch the request options, obtain the WebAuthn
|
|
46
|
+
* assertion (external), fetch the ref, build the companion ephemeral
|
|
47
|
+
* identity + commitment, and send the `passkey_prologue` IQ.
|
|
48
|
+
*/
|
|
49
|
+
const executePrologue = async (args = {}) => {
|
|
50
|
+
const deviceType = opts.deviceType ?? proto.DeviceProps.PlatformType.CHROME;
|
|
51
|
+
const requestOptions = args.requestOptions ?? (await requestPasskeyRequestOptions());
|
|
52
|
+
const assertion = await opts.signAssertion(requestOptions);
|
|
53
|
+
const ref = await requestRef();
|
|
54
|
+
const companion = generateCompanionEphemeralIdentity({ ref, deviceType });
|
|
55
|
+
let pairingHandoffProof = args.pairingHandoffProof;
|
|
56
|
+
const stashedKey = handoffKey;
|
|
57
|
+
handoffKey = null;
|
|
58
|
+
if (pairingHandoffProof === undefined && stashedKey !== null && Date.now() - stashedKey.ts < HANDOFF_KEY_TTL_MS) {
|
|
59
|
+
pairingHandoffProof = hmacSign(companion.prologuePayloadBytes, stashedKey.hmac);
|
|
60
|
+
}
|
|
61
|
+
const skipHandoffUx = pairingHandoffProof !== undefined;
|
|
62
|
+
const prologueChildren = [
|
|
63
|
+
{ tag: 'credential_id', attrs: {}, content: assertion.credentialId },
|
|
64
|
+
{ tag: 'webauthn_assertion', attrs: {}, content: assertion.webauthnAssertion },
|
|
65
|
+
{ tag: 'prologue_payload', attrs: {}, content: companion.prologuePayloadBytes }
|
|
66
|
+
];
|
|
67
|
+
if (pairingHandoffProof) {
|
|
68
|
+
prologueChildren.push({ tag: 'pairing_handoff_proof', attrs: {}, content: pairingHandoffProof });
|
|
69
|
+
}
|
|
70
|
+
await opts.query(mdIq('set', [{ tag: 'passkey_prologue', attrs: {}, content: prologueChildren }]));
|
|
71
|
+
session = {
|
|
72
|
+
companion,
|
|
73
|
+
ref,
|
|
74
|
+
deviceType,
|
|
75
|
+
skipHandoffUx,
|
|
76
|
+
stage: Stage.WaitingForPrimaryIdentity,
|
|
77
|
+
encryptionKey: null,
|
|
78
|
+
verificationCode: null
|
|
79
|
+
};
|
|
80
|
+
opts.logger.debug({ ref, skipHandoffUx }, 'shortcake prologue sent');
|
|
81
|
+
opts.emitPrologueSent?.();
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Derives a pairing handoff HMAC key from the current ADV secret and rotates
|
|
85
|
+
* the ADV secret (matching the official clients). The derived key signs the
|
|
86
|
+
* next prologue's handoff proof; the rotated secret goes into the eventual
|
|
87
|
+
* `PairingRequest`.
|
|
88
|
+
*/
|
|
89
|
+
const stashHandoffKeyAndRotateAdv = () => {
|
|
90
|
+
const creds = opts.getCreds();
|
|
91
|
+
if (!creds?.advSecretKey) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
handoffKey = {
|
|
95
|
+
hmac: hkdf(Buffer.from(creds.advSecretKey, 'base64'), 32, { info: HANDOFF_KEY_INFO }),
|
|
96
|
+
ts: Date.now()
|
|
97
|
+
};
|
|
98
|
+
opts.updateCreds({ advSecretKey: randomBytes(32).toString('base64') });
|
|
99
|
+
};
|
|
100
|
+
const handlePasskeyPrologueRequest = async (node) => {
|
|
101
|
+
stashHandoffKeyAndRotateAdv();
|
|
102
|
+
const requestOptions = getBinaryNodeChildBuffer(node, 'passkey_request_options');
|
|
103
|
+
opts.logger.debug({ embeddedOptions: !!requestOptions }, 'shortcake prologue requested by server');
|
|
104
|
+
await executePrologue({ requestOptions });
|
|
105
|
+
return true;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Confirms the verification code: builds + AES-GCM seals the pairing request
|
|
109
|
+
* and sends the `encrypted_pairing_request` IQ.
|
|
110
|
+
*/
|
|
111
|
+
const confirmVerificationCode = async () => {
|
|
112
|
+
if (!session || session.stage !== Stage.WaitingForConfirmation || !session.encryptionKey) {
|
|
113
|
+
throw new Error('shortcake: no verification code awaiting confirmation');
|
|
114
|
+
}
|
|
115
|
+
const creds = opts.getCreds();
|
|
116
|
+
if (!creds) {
|
|
117
|
+
throw new Error('shortcake: credentials are not initialized');
|
|
118
|
+
}
|
|
119
|
+
const plaintext = proto.PairingRequest.encode({
|
|
120
|
+
companionPublicKey: creds.noiseKey.public,
|
|
121
|
+
companionIdentityKey: creds.signedIdentityKey.public,
|
|
122
|
+
advSecret: Buffer.from(creds.advSecretKey, 'base64')
|
|
123
|
+
}).finish();
|
|
124
|
+
const envelope = encryptPairingRequest(session.encryptionKey, plaintext);
|
|
125
|
+
await opts.query(mdIq('set', [{ tag: 'encrypted_pairing_request', attrs: {}, content: envelope }]));
|
|
126
|
+
session.stage = Stage.WaitingForPairing;
|
|
127
|
+
opts.logger.debug('shortcake encrypted pairing request sent');
|
|
128
|
+
};
|
|
129
|
+
const handlePrimaryEphemeralIdentity = async (node) => {
|
|
130
|
+
const child = getBinaryNodeChild(node, 'primary_ephemeral_identity');
|
|
131
|
+
if (!child) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
if (!session || session.stage !== Stage.WaitingForPrimaryIdentity) {
|
|
135
|
+
opts.logger.warn('shortcake primary identity ignored: no active prologue');
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
const primaryBytes = getBinaryNodeChildBuffer(node, 'primary_ephemeral_identity');
|
|
139
|
+
const primary = decodePrimaryEphemeralIdentity(primaryBytes);
|
|
140
|
+
await opts.query(mdIq('set', [{ tag: 'companion_nonce', attrs: {}, content: session.companion.companionNonce }]));
|
|
141
|
+
const verificationCode = deriveVerificationCode(session.companion.companionNonce, primary);
|
|
142
|
+
const encryptionKey = deriveEncryptionKey({
|
|
143
|
+
companionPrivKey: session.companion.keyPair.private,
|
|
144
|
+
primaryPublicKey: primary.publicKey,
|
|
145
|
+
deviceType: session.deviceType,
|
|
146
|
+
ref: session.ref
|
|
147
|
+
});
|
|
148
|
+
session.encryptionKey = encryptionKey;
|
|
149
|
+
session.verificationCode = verificationCode;
|
|
150
|
+
session.stage = Stage.WaitingForConfirmation;
|
|
151
|
+
opts.logger.debug('shortcake verification code ready');
|
|
152
|
+
opts.emitVerificationCode?.(verificationCode);
|
|
153
|
+
await confirmVerificationCode();
|
|
154
|
+
return true;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Routes the two server-pushed Shortcake notifications. Returns `true` when
|
|
158
|
+
* the notification was a Shortcake one (and was consumed):
|
|
159
|
+
* - `passkey_prologue_request` kicks the flow off (server forces passkey,
|
|
160
|
+
* often right after a pairing-code `companion_finish`); the WebAuthn
|
|
161
|
+
* options are usually embedded.
|
|
162
|
+
* - `crsc_continuation` carries the primary's ephemeral identity.
|
|
163
|
+
*/
|
|
164
|
+
const handleIncomingNotification = async (node) => {
|
|
165
|
+
if (node.attrs.type === 'passkey_prologue_request') {
|
|
166
|
+
return handlePasskeyPrologueRequest(node);
|
|
167
|
+
}
|
|
168
|
+
if (node.attrs.type === 'crsc_continuation') {
|
|
169
|
+
return handlePrimaryEphemeralIdentity(node);
|
|
170
|
+
}
|
|
171
|
+
return false;
|
|
172
|
+
};
|
|
173
|
+
return {
|
|
174
|
+
handleIncomingNotification,
|
|
175
|
+
executePrologue,
|
|
176
|
+
confirmVerificationCode,
|
|
177
|
+
hasSession: () => session !== null,
|
|
178
|
+
getVerificationCode: () => session?.verificationCode ?? null,
|
|
179
|
+
clearSession: () => {
|
|
180
|
+
session = null;
|
|
181
|
+
handoffKey = null;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=shortcake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcake.js","sourceRoot":"","sources":["../../src/Utils/shortcake.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-connection.d.ts","sourceRoot":"","sources":["../../src/Utils/validate-connection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAO9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAiD,MAAM,aAAa,CAAA;AA2D5F,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,QAAQ,YAAY,KAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-connection.d.ts","sourceRoot":"","sources":["../../src/Utils/validate-connection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAO9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAiD,MAAM,aAAa,CAAA;AA2D5F,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,QAAQ,YAAY,KAAG,KAAK,CAAC,cAa/E,CAAA;AAUD,eAAO,MAAM,wBAAwB,GACpC,qDAAqD,WAAW,EAChE,QAAQ,YAAY,wBAuDpB,CAAA;AAED,eAAO,MAAM,0BAA0B,GACtC,QAAQ,UAAU,EAClB,uDAIG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;;;CAyFvF,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,SAAS,KAAK,CAAC,wBAAwB,EAAE,qBAAqB,OAAO,gCAS/G,CAAA"}
|
|
@@ -53,7 +53,8 @@ export const generateLoginNode = (userJid, config) => {
|
|
|
53
53
|
const { user, device } = jidDecode(userJid);
|
|
54
54
|
const payload = {
|
|
55
55
|
...getClientPayload(config),
|
|
56
|
-
|
|
56
|
+
// Existing companion sessions need an active login. Passive login can be rejected with 428.
|
|
57
|
+
passive: false,
|
|
57
58
|
pull: true,
|
|
58
59
|
username: +user,
|
|
59
60
|
device: device,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-connection.js","sourceRoot":"","sources":["../../src/Utils/validate-connection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validate-connection.js","sourceRoot":"","sources":["../../src/Utils/validate-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ export const getBinaryNodeChildString = (node, childTag) => {
|
|
|
48
48
|
};
|
|
49
49
|
export const getBinaryNodeChildUInt = (node, childTag, length) => {
|
|
50
50
|
const buff = getBinaryNodeChildBuffer(node, childTag);
|
|
51
|
-
if (buff) {
|
|
51
|
+
if (buff && buff.length >= length) {
|
|
52
52
|
return bufferToUInt(buff, length);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-utils.js","sourceRoot":"","sources":["../../src/WABinary/generic-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generic-utils.js","sourceRoot":"","sources":["../../src/WABinary/generic-utils.ts"],"names":[],"mappings":"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"}
|