Created
August 2, 2019 12:47
-
-
Save Valodim/59ae7c8a54abd7746412ae114c333721 to your computer and use it in GitHub Desktop.
openpgp.js error case
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let encrypted = ` | |
-----BEGIN PGP MESSAGE----- | |
hF4D1ovTTUio0zYSAQdAdswHo0VB15l6O0SuyZKrdJihMyJpAXXJ2YchVXzIDGAw | |
kHawzdnKw2tRCwIwzGolOUvtiLHwelfqrr2oriKouRvNveDRvr3gyIKXgkR8ivOf | |
hJ4DxVSidf4HPbISAwMEwGq1II3M4Kaj6vDT1PTsaeH3Vod/pkm29ekkMEZVpDUe | |
9d0wJuabKs5WAJRVRsOe9Y8z4XuqJvyJG3whjo+WLOXCIIiCOZH4L3JaTxay3kS/ | |
PjVKJzc+cn54QM+1FTo4MLtwu4rDUkjI1v6fYB/yGCrnDPNDedOyCOELbsMGjm3B | |
UIKHwYJwz3PXk5VcdfL2KNLCNQFAshWj55wzcNMr87J9yGaQXJ5b2lmJIa0qNPE2 | |
eGcwe9FQCbl3uthmEj0aAHvsPC/muK0ArG3G7ecCFnIhnliQTxsbY3gKyMfnPBbz | |
FrublQPUpwnKxr0p5BdPKwZTlQnsR/7eV1crribeGbchwfzg0ZPTWIXFUWZH0I0P | |
abAeIpxsYkdX5+tUuseI6iCVGLMiNhbhua2CJpMV7V9l1RXIZI5e3srMUdzK8pq+ | |
8M01VOBUtT3wrL3q1WKzuPKt5iRY+FON9dhidtBL/KXa2TzgqmkWy3DQ4h/2jkI/ | |
iijj+lJaIE7yqZoSiJc2d0oWXU/FYOk5XpbFdN6JPYyWtUdIyiD1nMBH1/bK/r8z | |
i4FfQMAAga7wSFsT1/WLwm7pQWhuVBly4PrA7RYqxBjRmSZosZlk/Ns6RiWTUqF2 | |
SCWpRP16lltpqdnHEAsIpk4uvhOUo3CO7ZUEhtfenN+uL0bKtOldOwzeeooyg7BP | |
OkMdzG/gRszV5tv60VodeqWMEgjQH+Rsbn2ROZiYdczb4BcDr/6bIKREKEyH5fBx | |
i9BjvgY3MmL/H9phMQxhd1+PWh9NwN7gam3riC2eKYBHk5BeK7swXKbV3oku6X4L | |
Ig05jtOF7qeTMHNk+idBrYxLNWEUmXEFMS1wEg1nCAQ+d7//fV5nLVu2BtIio+/J | |
UcB2ZFXCysvBXDD2SeyOrEImxWIMXFy2p0gJuvVgLOA28gPAYz4K5IpFntbqcPZv | |
+lpGj9lLwdmefIHcS2+PJ/EcmXQhgO9IE9atGWkCCwlY9HQPzdrZejf9KsSZKm3f | |
zomzn5Bw8N2imPPvfV6u2/dm6aV2phFIhF5a96JFFM+D+vzdM+LV3oBEHE4RLgTw | |
Of9UXQy8nQOigLyl29F5ywxjvpGmlJdRMuGtPoDu4SXO7tfSjEWfoKRBO1+yDiiT | |
dRB8IcFQFeXtb6yxSQtxkwXql98wtzyoSi1cJ14ItDZ0UIbJYjnOZZCUmzurml2V | |
KCecJse1P6w= | |
=mpqW | |
-----END PGP MESSAGE----- | |
`; | |
let privkey = ` | |
-----BEGIN PGP PRIVATE KEY BLOCK----- | |
lFgEXSYEPRYJKwYBBAHaRw8BAQdA8cfIT7Uo6AUP/W6tzFcvR6PuejBE25HYt/Qe | |
5Cp1HFUAAQC+Ha19kXHGD526VxI3MRjEbpfHsdMKMImO6wZXYbS8Yw7+tBxUZXN0 | |
byA8dGVzdG9AbXVnZW5ndWlsZC5jb20+iHcEEBYKAB8FAl0mBD0GCwkHCAMCBBUI | |
CgIDFgIBAhkBAhsDAh4BAAoJEBJ8Go5Hf0JyF8YBAIKvXmnPRwp3eerCHPIl5ylg | |
OUKPfHbXptVcpsEvEITyAQD5MLQdX1vwdiUFYFBd4Z063sYPbFJAOxnvcQBEdWdT | |
AZxdBF0mBD0SCisGAQQBl1UBBQEBB0BEANlpnCLR+3S7v60KePYSRCm5CYnQSDPn | |
wQMUgKgrfgMBCAcAAP9AbkoveVerC1OKQo1VFf8us5pNsHud/XbMw6XibH4p6BDV | |
iGEEGBYIAAkFAl0mBD0CGwwACgkQEnwajkd/QnLTeQEA+YTjzCUB8ls9iNkZu1UP | |
d6W38OjcOUfxpwj5dCE6Fm4A/iIMskzBHq4LYJX7rz5wTo2Lyb9BV8ORgVEF/mXv | |
ZdMB | |
=5ETO | |
-----END PGP PRIVATE KEY BLOCK----- | |
`; | |
let pubkey = ` | |
-----BEGIN PGP PUBLIC KEY BLOCK----- | |
mG8EXJijFRMFK4EEACIDAwTHefjp1vFEdotzyFw8ALougcwMwQ5FXjf0s8U/pvml5UUnYLEg6C/+ | |
+0wyLlJsV2hjeiGmbpNlxD/I955BlnhSL0zFInE2+P/H3eqcRlxLi8fK/HbrHUB9qSjx3ijXFxa0 | |
IkxlaWYgU2NoZXBwZWxtYW5uIDxsZWlmQGNvdGVjaC5kZT6IkgQTEwoAGgQLCQgHAhUKAhYBAhkB | |
BYJcmKMVAp4BApsDAAoJEPz4fGn0+O/C6F4Bf2lbdXI1cnHo6XJ6iKPtlAFM8Tbb8SeyKXjPQKss | |
ihefygcXI2jHAvaDiRzaHgMx0QGArtqN1SbDEfU2yV5dBnwBQYlfRXdJYH7PB/wZZBtYJwfK7PvH | |
K2mlqePqnlt7Ff8quHMEXJijFRIFK4EEACIDAwT/+SAxCp8s8/OYE315ymn/f2H/+vnP24F5rkXq | |
3BfeTDLZZrznfI9TDW2FtqMxPEzl7zfi+Bw+TZoRXzhytGG8zUvqmGSqeMAnopsC4aTv/p+WPHd/ | |
7iDtyy1TFhn1F5sDAQgHiIEEGBMKAAkFglyYoxUCmwwACgkQ/Ph8afT478JR3gF/TZoYytO27edv | |
ojPNfe6iMNacg79NepfbmHGsxiKUEeWUvAjWGAYkO8lUSMmtKNXzAXoCo/Xjy7AJk40pfuzcKqTH | |
kSWgKydJPWzY9rZpyYg7AJ8GJKs8ojbioPrc32mrgIs= | |
-----END PGP PUBLIC KEY BLOCK----- | |
`; | |
let openpgp = require('openpgp'); | |
(async function() { | |
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0] | |
let pubkeys = await openpgp.key.readArmored(pubkey); | |
// 7385fc74834e2deb233d2bf0fcf87c69f4f8efc2 | |
console.log(pubkeys.keys[0].getFingerprint()); | |
const options = { | |
message: await openpgp.message.readArmored(encrypted), | |
publicKeys: pubkeys.keys, | |
privateKeys: [privKeyObj] | |
} | |
let result = await openpgp.decrypt(options); | |
// fcf87c69f4f8efc2 | |
console.log(result.signatures[0].keyid.toHex()); | |
// false | |
console.log(result.signatures[0].valid); | |
let signature = result.signatures[0].signature; | |
let message = openpgp.message.fromText(result.data); | |
let result_two = await openpgp.verify({ | |
message: message, | |
publicKeys: pubkeys.keys, | |
signature: signature | |
}); | |
// false | |
console.log(result.signatures[0].valid); | |
// outputs message text, as expected | |
// console.log(result.data); | |
// console.log(result_two.data); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
related openpgpjs issue: openpgpjs/openpgpjs#939
This turned out to be an issue in OpenKeychain, which for P-256 signatures didn't include the correct checksum in the signature packet. Those are not cryptograhpically relevant and GnuPG doesn't mind, but openpgp.js rejects them.