@session.js/blinded-session-id 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +13 -11
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare function crypto_sign_curve25519_pk_to_ed25519(pk: Uint8Array): Uint8Array;
|
|
2
2
|
export declare const convertToEd25519Key: (key: string) => string;
|
|
3
3
|
export declare const convertToX25519Key: (key: string) => string;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const generateKA: (sessionId: string, serverPk: string) => Uint8Array;
|
|
5
|
+
export declare const generateBlindedKeys: (sessionId: string, serverPk: string) => Uint8Array[];
|
|
6
6
|
export declare const blindSessionId: ({ sessionId, serverPk }: {
|
|
7
7
|
sessionId: string;
|
|
8
8
|
serverPk: string;
|
package/dist/index.js
CHANGED
|
@@ -524,23 +524,25 @@ const generateBlindingFactor = (serverPk) => {
|
|
|
524
524
|
const serverPkHash = sodium.crypto_generichash(64, hexServerPk);
|
|
525
525
|
return sodium.crypto_core_ed25519_scalar_reduce(serverPkHash);
|
|
526
526
|
};
|
|
527
|
-
export const
|
|
527
|
+
export const generateKA = (sessionId, serverPk) => {
|
|
528
528
|
const sessionIdNoPrefix = sessionId.substring(2);
|
|
529
529
|
const kBytes = generateBlindingFactor(serverPk);
|
|
530
530
|
const xEd25519Key = sodium.from_hex(convertToEd25519Key(sessionIdNoPrefix));
|
|
531
531
|
const kA = combineKeys(kBytes, xEd25519Key);
|
|
532
|
-
|
|
533
|
-
kA2[31] = kA[31] ^ 0b1000_0000;
|
|
534
|
-
return [kA, kA2];
|
|
532
|
+
return kA;
|
|
535
533
|
};
|
|
536
|
-
export const
|
|
537
|
-
const
|
|
538
|
-
|
|
534
|
+
export const generateBlindedKeys = (sessionId, serverPk) => {
|
|
535
|
+
const kA = generateKA(sessionId, serverPk);
|
|
536
|
+
const key1 = kA;
|
|
537
|
+
const modifiedByte = kA[31] & 0x7F;
|
|
538
|
+
const key2 = Buffer.concat([kA.slice(0, 31), Buffer.from([modifiedByte])]);
|
|
539
|
+
return [key1, key2];
|
|
539
540
|
};
|
|
540
541
|
export const blindSessionId = ({ sessionId, serverPk }) => {
|
|
541
|
-
const [
|
|
542
|
-
|
|
543
|
-
|
|
542
|
+
const [key1, key2] = generateBlindedKeys(sessionId, serverPk);
|
|
543
|
+
const isKey2 = key1[31] & 0x80;
|
|
544
|
+
if (isKey2) {
|
|
545
|
+
return '15' + sodium.to_hex(key2);
|
|
544
546
|
}
|
|
545
|
-
return '15' + sodium.to_hex(
|
|
547
|
+
return '15' + sodium.to_hex(key1);
|
|
546
548
|
};
|