You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importopenpgpfrom'openpgp';constprivkey=`-----BEGIN PGP PRIVATE KEY BLOCK-----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7vmo-----END PGP PRIVATE KEY BLOCK-----`,pubkey=`-----BEGIN PGP PUBLIC KEY BLOCK-----mQENBGDtxQUBCADOlWqUON79hoQHMP53dGpY/+CrQNBLWXLCmINDF9HYFimp5WMpOPZN3r4CSuq3cKDsqKmk66CI8XekEcOaEiecp6Pcx8um325RJS6Ot0rdM4DXGe8MKJu/UKCaTV2iJoFSWGVDrLL+L+ai+kx2pwuCY1+Qp4LXndpay7VDsTVPYyvBu/FaRtA2G/cMCcFjzwSMqxibCbOUWQZtAaZszlokNrRAGXadJShS3tJxCnXwPIZS+QMt0tIxx5xlIHOIG6oKjRDCPNx1dqyOqztqzyECNh2y92SmqBLD5tcSXTsOZGx2+gCJeSbcDK7nOgbszufmM0tty3C2YU2qqs/nLUuhABEBAAG0IERldiBMb3BlcjIgPGRldkBsb2NhbGhvc3QubG9jYWw+iQFUBBMBCgA+FiEEKL8mzDbCZ2ao3H115dcTkQr6Ec0FAmDtxxsCGwMFCQPCZwAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ5dcTkQr6Ec1p+Qf/a6Wpdb070TxBw6nzHVzu1iI+a8qoeDdotA0HChET+YCLS8kq0pFy3IiodXCZcQsEl90oJYzyKPihDPCGeHs9a5cUEAs7GXd0GSMFKMqt/i6lgnzlWLQnMFGMZGrxL/lEszdzx9KH0cTrRmX3yDxcvcjcQJoDJGJz/yztYYdFqICEJi5YhwDW80MRrkJbz/We/u7C4CfALweKkr4/QmTgT4auUiFtu3CeZARq80tnOS8zBhwyEwtVfZmk6yrXAS452GXnEWZ3Fo3AYPCRdzL/pwLCFxTozhoWfA2uktv4fjZx2xMpBs2S53fd2TgM+YwetMZQ0DR57FrRi+WvGV1IZLkBDQRg7cU0AQgA2D3Ye92VOp4gEKWwa+67jhez9Lb0YT+FKtel+wLPVZjxAGTvNWBmaKZqO+VvYdJdxIBNfAO0u+Mzl2tX+Cn09psinlHysNthzQM/BE4qpK+nScQxwzycRD3pdM8nLDjk2HWVSoXS1ZR6AJ697xbk+Xei124o2mj5+t/wQyr9A0JvYCl/Uxl5MGLIH8OSNA7XY2q+I+immPH1bk6lWrMjRt8urhDbwqZmjgFOfZV0myGlmHu9tSKTbk3OC8VLTkfkKhcdlJf/r8CJo7FMzdsmeYDVBMwBQdQ69Is6dyBdyijDjzTWvThJHoFGZRVq8DRrdMw7NbtwSrL/COagxP6MNQARAQABiQE8BBgBCgAmFiEEKL8mzDbCZ2ao3H115dcTkQr6Ec0FAmDtxTQCGwwFCQWjmoAACgkQ5dcTkQr6Ec0xKAf/Q9so7HMUvzEnC/Ggob+9l385IjqqExTJrk4OwW7a3xWHVnM3xnGw5+IobYeUW7cayNUu0W8BO2T/8qyowBv0jha460M+RrTDsYQtyNqAY8NEtvHBPTBCUgX5XuuMei5a5xcDQmzNireP+rz+poFbX5de0AmYBrBIqVnBp8TlYeDEIm6lZXNCrDulQnx/HcaEgXAOoCbleDkXGaLuUDNhwVaUtQxhVU9FIPqWc1jAcVOCrnkIyvruRlhJV2lLAzJ55WXjMXpsOwO/HjWa/WP9mluoTsOgB+4mA2Nis8e1wD/iusGR70QvsCHZPN7saaqDCGV7d5ktg93wsLHtWxeYGQ===wPR/-----END PGP PUBLIC KEY BLOCK-----`;varorigin='abcd',cleartext=(newTextEncoder()).encode(origin),cleartext_message=openpgp.message.fromBinary(cleartext),{keys: [publicKey]}=awaitopenpgp.key.readArmored(pubkey),{keys: [privateKey]}=awaitopenpgp.key.readArmored(privkey);asyncfunctionas_armored(){const{data: encrypted}=awaitopenpgp.encrypt({message: cleartext_message,publicKeys: publicKey,armor: true});returnawaitopenpgp.message.readArmored(encrypted);}asyncfunctionas_bin(){varencrypted=awaitopenpgp.encrypt({message: cleartext_message,publicKeys: publicKey,armor: false});encrypted=encrypted.message.packets.write();// WRONG! openpgp.message.read(encrypted) must be used here !returnawaitopenpgp.message.fromBinary(encrypted);}// works// var { data: decrypted } = await openpgp.decrypt({message: await as_armored(), privateKeys: privateKey});// does not workvar{data: decrypted}=awaitopenpgp.decrypt({message: awaitas_bin(),privateKeys: privateKey});console.assert(decrypted==origin);
With the above sample, we get an error Error decrypting message: Session key decryption failed.
This is terribly hard to debug as one could expect this to come from a variety of problems related to the private key itself (non-encrypting key) or the public key. But no way to suspect the message to have been wrongly read. Moreover, using fromBinary as a Message counterpart works and seems plausible and logical.
I know it's 4.10.10 and v5 may have an improved API, but for v4 it's definitely a source of confusion.
The text was updated successfully, but these errors were encountered:
Hi @drzraf , the v5 API has been changed to avoid this kind of confusion, by introducing the createMessage and readMessage functions. We are not planning to make changes to v4, since v5 is going to be released soon.
With the above sample, we get an error
Error decrypting message: Session key decryption failed
.This is terribly hard to debug as one could expect this to come from a variety of problems related to the private key itself (non-encrypting key) or the public key. But no way to suspect the message to have been wrongly read. Moreover, using
fromBinary
as a Message counterpart works and seems plausible and logical.I know it's 4.10.10 and v5 may have an improved API, but for v4 it's definitely a source of confusion.
The text was updated successfully, but these errors were encountered: