|
@@ -14,6 +14,8 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
import ComlinkCryptoWorker from '@ente/shared/crypto';
|
|
|
import { generateLoginSubKey } from '@ente/shared/crypto/helpers';
|
|
|
import { UserVerificationResponse } from '@ente/accounts/types/user';
|
|
|
+import { logError } from '@ente/shared/sentry';
|
|
|
+import { addLocalLog } from '@ente/shared/logging';
|
|
|
|
|
|
const SRP_PARAMS = SRP.params['4096'];
|
|
|
|
|
@@ -39,7 +41,7 @@ export const configureSRP = async ({
|
|
|
|
|
|
const srpA = convertBufferToBase64(srpClient.computeA());
|
|
|
|
|
|
- // addLocalLog(() => `srp a: ${srpA}`);
|
|
|
+ addLocalLog(() => `srp a: ${srpA}`);
|
|
|
const { setupID, srpB } = await startSRPSetup({
|
|
|
srpA,
|
|
|
srpUserID,
|
|
@@ -57,11 +59,10 @@ export const configureSRP = async ({
|
|
|
});
|
|
|
|
|
|
srpClient.checkM2(convertBase64ToBuffer(srpM2));
|
|
|
+ } catch (e) {
|
|
|
+ logError(e, 'srp configure failed');
|
|
|
+ throw e;
|
|
|
} finally {
|
|
|
- // catch (e) {
|
|
|
- // logError(e, 'srp configure failed');
|
|
|
- // throw e;
|
|
|
- // }
|
|
|
InMemoryStore.set(MS_KEYS.SRP_CONFIGURE_IN_PROGRESS, false);
|
|
|
}
|
|
|
};
|
|
@@ -84,15 +85,15 @@ export const generateSRPSetupAttributes = async (
|
|
|
|
|
|
const srpVerifier = convertBufferToBase64(srpVerifierBuffer);
|
|
|
|
|
|
- // addLocalLog(
|
|
|
- // () => `SRP setup attributes generated',
|
|
|
- // ${JSON.stringify({
|
|
|
- // srpSalt,
|
|
|
- // srpUserID,
|
|
|
- // srpVerifier,
|
|
|
- // loginSubKey,
|
|
|
- // })}`
|
|
|
- // );
|
|
|
+ addLocalLog(
|
|
|
+ () => `SRP setup attributes generated',
|
|
|
+ ${JSON.stringify({
|
|
|
+ srpSalt,
|
|
|
+ srpUserID,
|
|
|
+ srpVerifier,
|
|
|
+ loginSubKey,
|
|
|
+ })}`
|
|
|
+ );
|
|
|
|
|
|
return {
|
|
|
srpUserID,
|
|
@@ -106,37 +107,37 @@ export const loginViaSRP = async (
|
|
|
srpAttributes: SRPAttributes,
|
|
|
kek: string
|
|
|
): Promise<UserVerificationResponse> => {
|
|
|
- // try {
|
|
|
- const loginSubKey = await generateLoginSubKey(kek);
|
|
|
- const srpClient = await generateSRPClient(
|
|
|
- srpAttributes.srpSalt,
|
|
|
- srpAttributes.srpUserID,
|
|
|
- loginSubKey
|
|
|
- );
|
|
|
- const srpA = srpClient.computeA();
|
|
|
- const { srpB, sessionID } = await createSRPSession(
|
|
|
- srpAttributes.srpUserID,
|
|
|
- convertBufferToBase64(srpA)
|
|
|
- );
|
|
|
- srpClient.setB(convertBase64ToBuffer(srpB));
|
|
|
-
|
|
|
- const m1 = srpClient.computeM1();
|
|
|
- // addLocalLog(() => `srp m1: ${convertBufferToBase64(m1)}`);
|
|
|
- const { srpM2, ...rest } = await verifySRPSession(
|
|
|
- sessionID,
|
|
|
- srpAttributes.srpUserID,
|
|
|
- convertBufferToBase64(m1)
|
|
|
- );
|
|
|
- // addLocalLog(() => `srp verify session successful,srpM2: ${srpM2}`);
|
|
|
+ try {
|
|
|
+ const loginSubKey = await generateLoginSubKey(kek);
|
|
|
+ const srpClient = await generateSRPClient(
|
|
|
+ srpAttributes.srpSalt,
|
|
|
+ srpAttributes.srpUserID,
|
|
|
+ loginSubKey
|
|
|
+ );
|
|
|
+ const srpA = srpClient.computeA();
|
|
|
+ const { srpB, sessionID } = await createSRPSession(
|
|
|
+ srpAttributes.srpUserID,
|
|
|
+ convertBufferToBase64(srpA)
|
|
|
+ );
|
|
|
+ srpClient.setB(convertBase64ToBuffer(srpB));
|
|
|
|
|
|
- srpClient.checkM2(convertBase64ToBuffer(srpM2));
|
|
|
+ const m1 = srpClient.computeM1();
|
|
|
+ addLocalLog(() => `srp m1: ${convertBufferToBase64(m1)}`);
|
|
|
+ const { srpM2, ...rest } = await verifySRPSession(
|
|
|
+ sessionID,
|
|
|
+ srpAttributes.srpUserID,
|
|
|
+ convertBufferToBase64(m1)
|
|
|
+ );
|
|
|
+ addLocalLog(() => `srp verify session successful,srpM2: ${srpM2}`);
|
|
|
+
|
|
|
+ srpClient.checkM2(convertBase64ToBuffer(srpM2));
|
|
|
|
|
|
- // addLocalLog(() => `srp server verify successful`);
|
|
|
- return rest;
|
|
|
- // } catch (e) {
|
|
|
- // logError(e, 'srp verify failed');
|
|
|
- // throw e;
|
|
|
- // }
|
|
|
+ addLocalLog(() => `srp server verify successful`);
|
|
|
+ return rest;
|
|
|
+ } catch (e) {
|
|
|
+ logError(e, 'srp verify failed');
|
|
|
+ throw e;
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
// ====================
|