diff --git a/src/lib/saml.ts b/src/lib/saml.ts index ffdbc5d..fcc168f 100644 --- a/src/lib/saml.ts +++ b/src/lib/saml.ts @@ -14,7 +14,9 @@ export async function encodeAssertion( key: CryptoKey, assertionData: AssertionData, ): Promise { - return btoa(await signAssertion(key, assertionData)); + // naively calling btoa does not correctly handle non-ASCII + const payload = await signAssertion(key, assertionData); + return btoa(String.fromCharCode(...new TextEncoder().encode(payload))); } async function signAssertion(