From e0a2d579269a4787ba997bfac9b58d641ff9fa04 Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Wed, 5 Aug 2020 11:46:53 +0200 Subject: [PATCH] refactor: sign.js PROCESS_RECIPIENT --- lib/jws/sign.js | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/lib/jws/sign.js b/lib/jws/sign.js index afbb3f7a..d809fd59 100644 --- a/lib/jws/sign.js +++ b/lib/jws/sign.js @@ -87,26 +87,21 @@ class Sign { recipient.header = unprotectedHeader recipient.protected = Object.keys(joseHeader.protected).length ? base64url.JSON.encode(joseHeader.protected) : '' - let toBeSigned - if (joseHeader.protected.crit && joseHeader.protected.crit.includes('b64')) { - if (first && !joseHeader.protected.b64) { - if (this._binary) { - this._payload = base64url.decodeToBuffer(this._payload) - } else { - this._payload = base64url.decode(this._payload) - } + if (first && joseHeader.protected.crit && joseHeader.protected.crit.includes('b64') && joseHeader.protected.b64 === false) { + if (this._binary) { + this._payload = base64url.decodeToBuffer(this._payload) + } else { + this._payload = base64url.decode(this._payload) } - - toBeSigned = Buffer.concat([ - Buffer.from(recipient.protected || ''), - Buffer.from('.'), - Buffer.isBuffer(this._payload) ? this._payload : Buffer.from(this._payload) - ]) - } else { - toBeSigned = `${recipient.protected || ''}.${this._payload}` } - recipient.signature = base64url.encodeBuffer(sign(alg, key, toBeSigned)) + const data = Buffer.concat([ + Buffer.from(recipient.protected || ''), + Buffer.from('.'), + Buffer.from(this._payload) + ]) + + recipient.signature = base64url.encodeBuffer(sign(alg, key, data)) } /*