fix jwt to work also with more meticulous runtime like bun

This commit is contained in:
einhornimmond 2025-07-03 08:46:56 +02:00
parent 06881716bb
commit 0c9296db44
2 changed files with 6 additions and 6 deletions

View File

@ -85,7 +85,7 @@ export const encrypt = async (payload: JwtPayloadType, publicKey: string): Promi
logger.debug('JWT.encrypt... payload=', payload)
logger.debug('JWT.encrypt... publicKey=', publicKey)
try {
const encryptKey = await importSPKI(publicKey, 'RS256')
const encryptKey = await importSPKI(publicKey, 'RSA-OAEP-256')
// Convert the key to JWK format if needed
const recipientKey = typeof encryptKey === 'string'
? JSON.parse(encryptKey)
@ -108,12 +108,12 @@ export const decrypt = async(jwe: string, privateKey: string): Promise<string> =
logger.debug('JWT.decrypt... jwe=', jwe)
logger.debug('JWT.decrypt... privateKey=', privateKey.substring(0, 10))
try {
const decryptKey = await importPKCS8(privateKey, 'RS256')
const decryptKey = await importPKCS8(privateKey, 'RSA-OAEP-256')
const { plaintext, protectedHeader } =
await compactDecrypt(jwe, decryptKey)
logger.debug('JWT.decrypt... plaintext=', plaintext)
logger.debug('JWT.decrypt... protectedHeader=', protectedHeader)
return plaintext.toString()
return new TextDecoder().decode(plaintext)
} catch (e) {
logger.error('Failed to decrypt JWT:', e)
throw e

View File

@ -87,7 +87,7 @@ export const encrypt = async (payload: JwtPayloadType, publicKey: string): Promi
logger.debug('encrypt... payload=', payload)
logger.debug('encrypt... publicKey=', publicKey)
try {
const encryptKey = await importSPKI(publicKey, 'RS256')
const encryptKey = await importSPKI(publicKey, 'RSA-OAEP-256')
// Convert the key to JWK format if needed
const recipientKey = typeof encryptKey === 'string'
? JSON.parse(encryptKey)
@ -110,12 +110,12 @@ export const decrypt = async(jwe: string, privateKey: string): Promise<string> =
logger.debug('decrypt... jwe=', jwe)
logger.debug('decrypt... privateKey=', privateKey.substring(0, 10))
try {
const decryptKey = await importPKCS8(privateKey, 'RS256')
const decryptKey = await importPKCS8(privateKey, 'RSA-OAEP-256')
const { plaintext, protectedHeader } =
await compactDecrypt(jwe, decryptKey)
logger.debug('decrypt... plaintext=', plaintext)
logger.debug('decrypt... protectedHeader=', protectedHeader)
return plaintext.toString()
return new TextDecoder().decode(plaintext)
} catch (e) {
logger.error('Failed to decrypt JWT:', e)
throw e