Skip to content

Commit 6c94d5b

Browse files
committed
tss_api: add user_identifier support to Ed25519 keygen
1 parent 69e53b8 commit 6c94d5b

File tree

5 files changed

+26
-14
lines changed

5 files changed

+26
-14
lines changed

backend/tss_api/src/api/keygen_ed25519/index.test.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,17 @@ async function setUpKeyShareNodeMeta(pool: Pool): Promise<void> {
4646

4747
function generateKeygenRequest(
4848
keygenResult: ReturnType<typeof runKeygenCentralizedEd25519>,
49-
email: string = TEST_EMAIL,
49+
user_identifier: string = TEST_EMAIL,
5050
): KeygenEd25519Request {
5151
const serverKeygenOutput = keygenResult.keygen_outputs[Participant.P1];
5252
return {
5353
auth_type: "google",
54-
email,
54+
user_identifier,
5555
keygen_2: {
5656
...serverKeygenOutput,
5757
public_key: [...keygenResult.public_key],
5858
},
59+
email: user_identifier,
5960
};
6061
}
6162

@@ -214,11 +215,12 @@ describe("Ed25519 Keygen", () => {
214215

215216
const request: KeygenEd25519Request = {
216217
auth_type: "google",
217-
email: TEST_EMAIL,
218+
user_identifier: TEST_EMAIL,
218219
keygen_2: {
219220
...serverKeygenOutput,
220221
public_key: [...keygenResult.public_key],
221222
},
223+
email: TEST_EMAIL,
222224
name: "Test User",
223225
};
224226

@@ -247,11 +249,12 @@ describe("Ed25519 Keygen", () => {
247249

248250
const request: KeygenEd25519Request = {
249251
auth_type: authTypes[i],
250-
email: `authtype-test-${i}@test.com`,
252+
user_identifier: `authtype-test-${i}@test.com`,
251253
keygen_2: {
252254
...serverKeygenOutput,
253255
public_key: [...keygenResult.public_key],
254256
},
257+
email: `authtype-test-${i}@test.com`,
255258
};
256259

257260
const result = await runKeygenEd25519(

backend/tss_api/src/api/keygen_ed25519/index.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,13 @@ export async function runKeygenEd25519(
3333
encryptionSecret: string,
3434
): Promise<OkoApiResponse<SignInResponse>> {
3535
try {
36-
const { auth_type, email, keygen_2, name } = keygenRequest;
36+
const { auth_type, user_identifier, keygen_2, email, name } = keygenRequest;
3737

38-
const getUserRes = await getUserByEmailAndAuthType(db, email, auth_type);
38+
const getUserRes = await getUserByEmailAndAuthType(
39+
db,
40+
user_identifier,
41+
auth_type,
42+
);
3943
if (getUserRes.success === false) {
4044
return {
4145
success: false,
@@ -68,7 +72,7 @@ export async function runKeygenEd25519(
6872
};
6973
}
7074
} else {
71-
const createUserRes = await createUser(db, email, auth_type);
75+
const createUserRes = await createUser(db, user_identifier, auth_type);
7276
if (createUserRes.success === false) {
7377
return {
7478
success: false,
@@ -219,9 +223,10 @@ export async function runKeygenEd25519(
219223
data: {
220224
token: tokenResult.data.token,
221225
user: {
222-
email: email,
223226
wallet_id: wallet.wallet_id,
224227
public_key: publicKeyHex,
228+
user_identifier,
229+
email: email ?? null,
225230
name: name ?? null,
226231
},
227232
},

backend/tss_api/src/routes/keygen_ed25519.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,13 @@ export function setKeygenEd25519Routes(router: Router) {
9191
const auth_type = oauthUser.type as AuthType;
9292
const body = req.body;
9393

94-
if (!oauthUser?.email) {
94+
const user_identifier = oauthUser.user_identifier;
95+
96+
if (!user_identifier) {
9597
res.status(401).json({
9698
success: false,
9799
code: "UNAUTHORIZED",
98-
msg: "User email not found",
100+
msg: "User identifier not found",
99101
});
100102
return;
101103
}
@@ -110,8 +112,9 @@ export function setKeygenEd25519Routes(router: Router) {
110112
jwtConfig,
111113
{
112114
auth_type,
113-
email: oauthUser.email.toLowerCase(),
115+
user_identifier,
114116
keygen_2: body.keygen_2,
117+
email: oauthUser.email,
115118
name: oauthUser.name,
116119
},
117120
state.encryption_secret,

common/oko_types/src/tss/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export interface UserTokenPayload {
2-
email: string;
2+
email?: string;
33
wallet_id: string;
44
wallet_id_ed25519?: string;
55
type: "user";
@@ -8,7 +8,7 @@ export interface UserTokenPayload {
88
export interface GenerateUserTokenArgs {
99
wallet_id: string;
1010
wallet_id_ed25519?: string;
11-
email: string;
11+
email?: string;
1212
jwt_config: {
1313
secret: string;
1414
expires_in: string;

common/oko_types/src/tss/keygen_ed25519.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ export interface TeddsaKeygenOutputWithPublicKey extends TeddsaKeygenOutput {
88

99
export interface KeygenEd25519Request {
1010
auth_type: AuthType;
11-
email: string;
11+
user_identifier: string;
1212
keygen_2: TeddsaKeygenOutputWithPublicKey;
13+
email?: string;
1314
name?: string;
1415
}
1516

0 commit comments

Comments
 (0)