diff options
-rw-r--r-- | packages/server/src/registration/generateRegistrationOptions.test.ts | 15 | ||||
-rw-r--r-- | packages/server/src/registration/generateRegistrationOptions.ts | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/packages/server/src/registration/generateRegistrationOptions.test.ts b/packages/server/src/registration/generateRegistrationOptions.test.ts index 3b7f62b..fded674 100644 --- a/packages/server/src/registration/generateRegistrationOptions.test.ts +++ b/packages/server/src/registration/generateRegistrationOptions.test.ts @@ -192,6 +192,21 @@ Deno.test('should generate a challenge if one is not provided', async () => { mockGenerateChallenge.restore(); }); +Deno.test('should treat string challenges as UTF-8 strings', async () => { + const options = await generateRegistrationOptions({ + rpID: 'not.real', + rpName: 'SimpleWebAuthn', + userID: '1234', + userName: 'usernameHere', + challenge: 'こんにちは', + }); + + assertEquals( + options.challenge, + '44GT44KT44Gr44Gh44Gv', + ); +}); + Deno.test('should use custom supported algorithm IDs as-is when provided', async () => { const options = await generateRegistrationOptions({ rpID: 'not.real', diff --git a/packages/server/src/registration/generateRegistrationOptions.ts b/packages/server/src/registration/generateRegistrationOptions.ts index 54bdaa5..c894abb 100644 --- a/packages/server/src/registration/generateRegistrationOptions.ts +++ b/packages/server/src/registration/generateRegistrationOptions.ts @@ -157,7 +157,7 @@ export async function generateRegistrationOptions( */ let _challenge = challenge; if (typeof _challenge === 'string') { - _challenge = isoUint8Array.fromASCIIString(_challenge); + _challenge = isoUint8Array.fromUTF8String(_challenge); } return { |