Description
Given this armored public key:
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEZcX4ehYJKwYBBAHaRw8BAQdArS4IJzI41xiclNFn2euYhhnnJepj2+4C
li1G7/zCrFDNdDc4MDIwYzk3MmQ4NmJiMDliMmY5OTFmYjBiNzlmNGViOGUw
OWViNDNiNTAwZTMwZGVhNzE4MjI3MDQ0Y2ExMzM6MCA8MTk2R0pXeUx4ekF3
M01pclRUN0JxczJpR3BVUWlvMjlHSEBydW5vbmZsdXguaW8+wosEEBYKAD4F
gmXF+HoECwkHCAmQaxuSLPI6z2MDFQgKBBYAAgECGQECmwMCHgEWIQQsFiWT
TSE5z0DVycVrG5Is8jrPYwAAmlABAPERnWR0dYPVA0PQHYpK+FcDYumvc6Qx
bGxlVkw1Jg1HAPdphwzk1ZHq8pIxQ9j9D1+pqlcQvH5X05XitCFKzWsOzjgE
ZcX4ehIKKwYBBAGXVQEFAQEHQKO4G2HuC0BKs5etwSp7vglsKhczqmvj2UMs
QpBzawdmAwEIB8J4BBgWCgAqBYJlxfh6CZBrG5Is8jrPYwKbDBYhBCwWJZNN
ITnPQNXJxWsbkizyOs9jAACZjwD9Gp9j9naqFiZdnoDIGTsbP/HfB/JQzU0z
jcQTPAJ6J3IA/RTEG/U7LSQLC+unhLKX6wMKgi3KWy1wVSEQGA+Ya9cK
=PaLS
-----END PGP PUBLIC KEY BLOCK-----
This code fails:
final message = 'encrypt me';
PublicKey publicKey = await OpenPGP.readPublicKey(armoredKey);
final pgpMessage = await OpenPGP.createTextMessage(message);
final encryptedMessage = await OpenPGP.encrypt(pgpMessage, encryptionKeys: [publicKey]);
final armoredMessage = encryptedMessage.armor();
With an error: Exception: The list length (63) is invalid (min: 64, max: 64)
Stacktrace:
packages/pinenacl/api/api.dart 87:7 _constructList
packages/pinenacl/api/api.dart 47:16 withConstraint
packages/pinenacl/src/signatures/ed25519.dart 7:15 new
packages/dart_pg/src/packet/key/eddsa_public_params.dart 40:18 verify
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5 _async
packages/dart_pg/src/packet/key/eddsa_public_params.dart 31:22 verify
packages/dart_pg/src/packet/signature_packet.dart 516:23 verify
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5 _async
packages/dart_pg/src/packet/signature_packet.dart 480:22 verify
packages/dart_pg/src/packet/signature_packet.dart 536:12 verifyUserCertification
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5 _async
packages/dart_pg/src/packet/signature_packet.dart 524:39 verifyUserCertification
packages/dart_pg/src/type/user.dart 66:29 verify
Note: I am able to use this public key in various online tools, like https://aliceandbob.io/online-pgp-tool and https://browserpgp.github.io/encrypt.html
Note: Some public keys do work, like this one:
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEZbqNYxYJKwYBBAHaRw8BAQdAz/7C41hvCdpjP+idcZJFe9cPSdU46OTw
L5WTl9FGldvNdDViNDE0YmU5NjY5NWM4NWIxMzA1YzM5YTNlNjVjNjhjOTJk
Njk5MWEwZjI2ZWJiZmZjZGJhMWQ1YjQyOWZkYjE6MCA8MVAyZVpYVzlkNHlE
cGQ3aW94TXVLWGhtanRKeWhaS05zRUBydW5vbmZsdXguaW8+wowEEBYKAD4F
gmW6jWMECwkHCAmQ7UrME47VSDUDFQgKBBYAAgECGQECmwMCHgEWIQSRsbcv
cc1Bxm9f5gvtSswTjtVINQAAokIA/it2yN8CmoFyluNJVZaI5NOfU3GDD3eJ
Tlt93UlqUzq6AP42wAHcvHeuYlAeBaeNxZvvDsZX0cnRTbTwl1xuMBF0C844
BGW6jWMSCisGAQQBl1UBBQEBB0AMwkrcVIQcnM3bltungubtrr2wLSytdEMv
TTU64cm/FwMBCAfCeAQYFgoAKgWCZbqNYwmQ7UrME47VSDUCmwwWIQSRsbcv
cc1Bxm9f5gvtSswTjtVINQAAFMwBAKLL2nUGjdJXdESij3y6mLo76iXSIouH
t85ShYuPIwtnAQDP3/Ql5KoVGs3MFg5OEcd+Pjdt8fkVUTEpvqvBaEMmBw==
=1RIN
-----END PGP PUBLIC KEY BLOCK-----