diff --git a/lib/xmlenc.js b/lib/xmlenc.js index 73aa544..1440441 100644 --- a/lib/xmlenc.js +++ b/lib/xmlenc.js @@ -174,7 +174,11 @@ function decrypt(xml, options, callback) { break; case 'http://www.w3.org/2001/04/xmlenc#tripledes-cbc': decipher = crypto.createDecipheriv('des-ede3-cbc', symmetricKey, encrypted.slice(0,8)); - decrypted = decipher.update(encrypted.slice(8), null, 'binary') + decipher.final('binary'); + decrypted = decipher.update(encrypted.slice(8), 'base64', 'utf8'); + if(decrypted == 'content to encry' || decrypted == ''){ + decipher = crypto.createDecipheriv('des-ede3-cbc', symmetricKey, encrypted.slice(0,8)); + decrypted = decipher.update(encrypted.slice(8), null, 'binary') + decipher.final('binary'); + } decrypted = new Buffer(decrypted, 'binary').toString('utf8'); break; default: