openpgp-pqc / draft-openpgp-pqc

Repository of the WIP draft-ietf-openpgp-pqc
Other
8 stars 2 forks source link

add sample PQC certificate + PKESK/SEIPD msg #65

Closed TJ-91 closed 6 months ago

TJ-91 commented 10 months ago

I added a PQC certificate (public and private) and a v6 PKESK + v2 SEIPD message encrypted to that certificate. The two MUST algorithms are used, i.e., ML-DSA-65 + Ed25519 and ML-KEM-768 + X25519. For the format and description and I oriented myself at the Crypto Refresh.

The RNP main branch at commit 6a15c33 has been used to produce the data.

To begin with, this test vector should be enough. Signatures are also covered since the key packets are signed. It would be good to parse and decrypt this with some other implementation as soon as one is available.

In the future we might want to add some in-depth dissection of interesting intermediate values as for example A.8. Sample X25519-AEAD-OCB encryption and decryption section of the Crypto Refresh.

falko-strenzke commented 10 months ago

The two MUST algorithms are used, i.e., ML-DSA-65 + Ed25519 and ML-KEM-768 + X25519.

To be exact, that is Dilithium_round3-65+Ed25519 (an odd spec for Dilithium, I know) and Kyber_round3-768+X25519.

fluppe2 commented 10 months ago

The two MUST algorithms are used, i.e., ML-DSA-65 + Ed25519 and ML-KEM-768 + X25519.

To be exact, that is Dilithium_round3-65+Ed25519 (an odd spec for Dilithium, I know) and Kyber_round3-768+X25519.

Then I guess we discussed that the description of the test vector should point that out and include a reference to the specification document. That would really help people verify the given bits and bytes.

i.e. add maybe something like "the test vector has been produced using the following algorithmic specifications [Dilithium_round3-65] and [Kyber_round3]".

Such a sentence could be a moving target that develops into referencing the final standard for ML-DSA and ML-KEM in the end.

fluppe2 commented 10 months ago

@TJ-91 Very nice work.

TJ-91 commented 10 months ago

I added a general note in the Test vectors section and reference the spec again when writing e.g. "ML-DSA-65" to point to the Dilithium Round3 spec.

Is further clarification needed?

Edit: Should we also point to https://github.com/ietf-wg-pquip/state-of-protocols-and-pqc#algorithm-names and give the name of the used spec according to that document??

wussler commented 10 months ago

Heyo, yesterday with @teythoon we managed to get the two implementations to partially interoperate, and spotted some bugs on both sides. These vectors here are unfortunately wrong:

Edit: he's gonna provide a partial patch for these issues

wussler commented 10 months ago

FYI, here are some certs and messages we generated

SK

-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=O+Cg
-----END PGP PRIVATE KEY BLOCK-----

PK

-----BEGIN PGP PUBLIC KEY BLOCK-----

xscKBmVHlUkjAAAHwEEm3R16QRXKcdiChBHdQURIC+hlFIge6NI2WnYADwlmWv88
7mOrlqIv3mtv2odwos0ANnswiiU0sue+CIQdfqWY0JDLLNziF9IZT16kDUwo2ykl
1h7+yNymdJxCWQcE81eA1QP3TwqBAUg/2xBtcTRzKt77tFYZTsbUP5FYnuXBHGh1
gLKAMXd+TnAnvz5OFGgzeYsllKk4ylQ2I2dQTSWTSfTGdILgvJm/Kg8WRLPrGBfA
dCmR/F0VJiYuIU5oYVeTvDxZ8jNmgGzZNc3ORzmAXqF5H9AuVAsbqswIgBpycZih
jetvVPOUY9sKUE2ZhCUEXnIzmMFTrnkqjj3GJi4y8qAQ1VAvBMxE5DQsnEoFt81G
uOCu6Y3lFabwj/eMKKgmyZZordqmhL8pOFGlxo1hzxv4rzwZtNLmS877yJwthAUk
vv5vaXWRCvXCk8ap/PeHsrImGCkD2+Oaq2PLG92bWD52ggahP/fxAnOcLbE3/hpw
tEnXuYoGVyEeuFqHbJoho+o6IZ5mN2Kg1m3Yi1XJ9Jeqnn0ZMv4NBkPKGWxmkEEL
mX/nVWQO/U5s2cdKq+F7I9nPm0HzY+9ScYn+m/Jkdr5kQAoo+XJnyZUTl5wqe2iw
T7PDTCA1NDeShE2LzIN/70PFHQwG/yMAuQZ+eyZUjnkKT2WFlFM0+xtVsmTCqvr9
r1Kos2W4Z2BV4E83RWI/cqgZ9KDppAe5oEptciT/IAohcMNyEeCkphEL5/DYvUK3
mB/NMKnCBpQzM88OZuckUIqPK3Y6B8zD3CA9FQsykr5D/nc2Opfxb72NYaKPGL0u
SyVmGVLzptVuCeOdvDzYBnp90IuYgZqj5yWCQfmpa4R7OHFp1KVks7vyqZBGuki5
8oU7VieW3Nhs4z7ynHD6RefDiSRPmTKd8AjanxE0RfBR4ncPinxT3+fsByBdueMV
H1GM5tg5oUil64FuUsk8hsawYRYe7UjM/8bC6iLxoccxjczPVM4cYR/HNCkgYLXk
aVyrUKARojUPoRdQcFeIovXVgHwS4uXdISGAY/vsv2GaAhf8o5lkTR0vch+xYb0d
cokFrRtLia64KOf2gA6CmJSBdQ4lox4CukFo0gCe0HQ/t1FI6ONMl8qMvi/RaGHK
XZUHIzg/WB0tDfrwJ9akO58zkxdhfEg+xz3x0ryEE0rUxLXt7BsXlxZP7m7uhaLY
dItk4UOUesGS1ao4wlmLTr1kS+pjvWLGonLiBcIsO6XbgwJ3TRLB2e+jbWmdt52w
pvXpsJsQsl9d62DaMJlU4bpgMLmoWgrsckfEcmlPIYfyXHjh05uIMS6Mhmye0+kX
6BePu49evL3SwCogQFXAVcgelKoNz67J7m96diBz46TsQdKR99UxMiXH8WNeiwGr
icX1CSAWtJzr2IBnxjgNHbk23yPESTvoe2mWyvXjVRem7ysXsKLDHWQ8tTZLdSVa
Tpi7K6Eu2ATolGA7alYaJCbGOgNFB24y+ma+KQQdNVLvn/3SY3ePiqUHixc10I9h
9AwWJoc4ps5KfbnLMkLvW5oFc+6MJ3x0SrpWp0Upt9ZbzUL1myjbwV4f2Ajfa9Tx
wy0At6TZi4ttadiIQzfyRNe1FdtTHX0IYhkImWY+n1DAt+Vl69HKoCTunZnUg4lb
h0QYx1hcRnCwg4pPrgQXZgU3yLd/ZwYqCKkGBG3dwqIoVZ35iYNjaejd5+a7rk05
Kfaba8kCDNqkrHQMZBqxhjpSd/fxeH/Iq/5WsAGQFUyZE+XCgXX48s1VxZjF5mzu
XfiPDon3Nis32+Rv4L7y21EkMoMTlhJCMIOJVGPrbdK1RMb8HcGaQFKocRGP3Pgf
LLAeo6p3cRtoRgXbDB0Cpasxvprq+VFWs+ASRN0wqgTXKehhFXF1UYFuJKykiYZg
e2fqQRBc/J25XzwxSE5dZQHhmNg+4QECk+HxjkAUt8adf/+n9mr55Dp3OicBlnxd
s6N4JATb1jHW92q+P09JVlBBH+fNuHlzDyQYNiTkXpH+9hyD5BLRWZEJn9WuAEjk
pLt4YZ9nEmPP8ARjgQqg3WH9dyATc4sUu0iuQ0mGvhyVf5FP9cAd6pyFYYie7oa/
FOf5SWohE19Jw9Bq9CQktq5fYyriSYuOu+oTihg9YixBsUj52WW4Jrrd+7uFyHme
vqpbFBl/fZNwdlHNMOUhLr0QYocsB7w7p/3wiV/lIY3KKvu9KSGR6OseZhUAKjpN
3NUmM0HY6fIRwg7LBmBIgTb/xPGnuchG6jCqA3P18ep/43FXR51p0e8KVpeJDEbC
oC0FnaUSYC0GxR5DrfJNVPcltScqHQs9aF90RsMUxu48TvysSXmZFgA1acD1ltyO
HCfA/YmWdqTzYglLJEbq7UE0J2GFO6Vxo87AWwq2C1dW6yFvI/dkBE6g/nvtyXzG
qrwmXLzJog9f8dV5/smr+pvz4MD7+wBaDYAu2wu6VNILzpWsobpCwthGuJSMxxO3
LZE9S/7hPkJRNfjQKI/n8ZK40tscKEeG1/uyQ3ipcY3zxbnFbHOU2aQHkjHVbCre
GlMsJXNtBgFmS75eD15zL7Nm/zenHIL5pWshfeJx3TfYhXGKZJsnaghCs5R3FaxK
ply/iWH7RFTp5GDAHcvpXjzLEEn+KYcy6rp4PmbCzMkGHyMKAAAAPQUCZUeVSSKh
BmbvUtO9J9HVyqs3wE8B0cPb/TjHQVLzHwRZnrqKiM7KAhsDAh4JAgsHAxUKCAIW
AAMnBwIAAAAAQ3ogW+P9MX/SbxJ4o3ThPKaw7bmYcMj157ilImcWlZGljJz0AJIj
2f8vQfryM9HyF4NkSN40nAokV0OmVIFZCcJQkz02dEJXhczVx/Iz0uTrU577E0V/
HiYB5DkZRM7lwAEFUdy2eCO711UC54761rW2DjRRO6zujmBJ9w0kutxIc6dPqdpK
A5Lpx1bRAckVDfS1yeM3cvqeZjVNI1DxS75OnrWgf162z11O+qow1iVkjPcBGsDX
NtBiwHQhXZ19OSvDbkSEZ5jWlrHVtmQsWrgZKcfXrSXwhV7/iEYH8sZCj0gmkXV5
orcvh85TlVh252SMoFpL2VAJqTcBjwntlhSivOmO/ITxvjy5fb5Hiprvt4zIAzGf
sXjySME9D2R1aCGsUqHj8TIf+/krLYdxtzvZPAoYOxICctOpjhqPAKimTAwG6dP+
UKooMQK2staaV+CkXIUXW3ysBEtWyF/SWA6XCLIFu87w3fIwFeipqc+pXYl6x85o
jAKB5q/GxBBykBRGwRQVcRnScvbWNRkB+UpZy6GRuPgq6coIlVQP8Zykl1Nsh6cr
SsDnbtbUoB1i6N8FW4Ta+ggQ5qL76iPgvElP4h7IrBqwHejiI7rxtV2oHoUXgud+
9xjWk0uIKYD99P8mWD1DzQ96fNZzqkx2+E4wLpmKP9KozFPatTBN/vGa85rDG9rP
Al3ucgVqZl1N7J+D84gE0H905EB+Tt5of54UhXU6Gb7u1DKWA0aaJYCy922bdoQW
Ejo7PWQsfnd2xZNDq2Hap5Xu68TjStCRGLZdXfK9Qk3dBwJUaXy8NAm18Zio9dGZ
bsQNDoQKIRdHspsEj4EUBw4QyYZuoeuM5DH6T6yvea1lblhk1KioKTE2Vgua8hjP
/uYJH7Q3MS42bM4HbgvOSepSUOOtT4N8pGYgSbSaIVTu7Ns1CuANUPBxZgYyhLrB
4pWfE4dWuyPku52eZYxh9SwiFLdgzQo1LI14/UDu1fXhVk1RC44qSK7NWBGGyo9b
8hK5xqa79VOoStkH+8tps/qQz53jvvPHnfUQqUCX09itKXQcSsd71VTgNxb7BSzK
VzbBWdqnnP2WTU8v+WAEhtaJkYP02lhpdC6kUfsFJt5Pitpyd+QDWyMY9fF1NMoo
rQaHs4hGxsYLw53ygHJtnK/2ZVytHOhhoWfzQDKwvcgcPOeeIhbhX4jvFK3Nws6B
HdUnaHCTfg77RCfvHgB27appSYAoOOxb7tDl43nwHxpU30VB2aSo1FE5Xf6H6Ai+
JPmixc9ZyI7Hltctda8D/P53JTLv4nVtiZY/umT9261K1PFBVHtcy3Y/kfjxN16n
uoHka+aGQvWLwwcP176sdvPiRnLaltBteSo25TN0nvdihv5Rp1bIOw4kYUa0b+cE
STiXkgYqfki5nS7UJYuPzn6EuspM+JoVBpx8R7zL/Lo7Y0CPNS5QgNMKwTpowrH2
QRO7dvtcV7r6CEP38C498q3Ueyf/qIVLt2tS31mVoXwWlzD9NOatBwVZMA6iinJI
HUqB/gRSzrynLFx4mMrkUxw6dkKHVyrvw/t0d6Kokhfeah9BG1/DPtr7nAPNTYJt
R97jd6nGnL4eQm2GHJ7V/Auh032qpc66hQ5kES5xqSrMotV3DLSPL2QE2+qgWK9T
+yy+am8sWan0VsWLeLyFjyoQayQY/qVm48My858zxo4tv+zCHJfmk0y+dDb5fdg2
W+iIGYVnKd/IiUaQqGqEqmDNSZb+i0vEX02pAYO0qagZAv86HUwX1yK8OTLOM5HH
t27bypQ+ieiRZ9aVGxfIJXT2oQWnqL6MiSOCMDHAqT1b0+/jgIsoUa9mktqFFdby
XAFA8ZzhHYJi54DMqNhyMScnB0yFibscay7uXFRaMQ/J5AjbMlIOJ3McuwG9JElu
+gx/jQlbJQR4gZ86TxFUmL1SI+CFxQKXob0/xFY5ma7Lt8G4JtNMFflWByx6b6KF
qDpRDUW9mlm5SjLkOoh2AM0ZDSOza42OLV/v+FIV0gRK+di7NqkM+2LTLtOIPVb9
8dmIrNf5Y1TTC44XsCAeAuKl/iS+o2xrRwjIpFphLJi/gC6NoPI1vqUzlpg6Pe/B
vr0g2IBA1sMHEDOyuL1UoUZYHBiJRdZvmBnu28MfCKSZ45xQRbGQiLiW243neB0/
sxu1y2ydwcoFQ0U+ToHgkY3d7Pk+5Efo0coZxIZuurnJ3savwcwhWBnUuFowwp4b
K1hRv/4JR7+9WShjjj6yqZoyaA34e/ULNX+3KvOGTXfmUGsyYdG++2LrG4UPRiGt
G5bFORYRfLlLW43lueIclYaNWMpt8stldrEq3Rs6VBY853tUobqM6uio1RDhR2gc
Hmchn/JVlaZoULBotREjbcYD3WuXrw02J7aTEsHwJvijQ2FePV/LJX5KUpUQGlOy
RJivpdTnvi+ogEiLr5fZQeC4usBTypPns+faQK3QTOoqKO1hTdNlyT40iKg0jG+9
nabS6dKB9LoGS56XkMvt5nH1J59xyD4jwmt5EiGVT6gRH0jgapzZ+jJvRCzCB0oz
sPlnKfdF0NO9mQJgt1Mwf8Gcj48Mu3rcCHE3Mt6GXza8mbiUlZu+lKyy+4I9C4az
8/jNPatwPDPJkeBSHupEgon+QeBZrKjS0lL9BYR7W/X0VK5utpDczhpJ/1fBaXmL
JPOdLkonQ482P05X1CkwgLobrfZSG3kAnekOKJ0OGNwx5CJTe6fBsFRZZCmoH3TD
Sj7o7NFCdMmCZ5wMJNRIMhhtqREAbYpJbqpTYq74jVzCofIVEcgw14yrRaGGp49F
TAhYA9eoQsm3gZ/LwA0hTnTp5kedJU4waV2adSv1ep6FlM8XmIWcI1zu0BS9pZ+S
2kn9a0mhhSt53COPIWjlTlF1jGPVkogiWQaNJh+0mjxAiBftz8niNGywOhrf4yTp
rDrX4KhYmSCM/Hnlk7wN9ZkdiZNUdnTTSvHw6mlIAfocsEPrtOST/uzoJ0tVpf2/
8Om8PxtgTa2pyg7Zso52Dlv9fU9XZlVbVP+Hcgh0Oi9iU7AsOaPRXRa+pIaCFDRl
Afr12olrjIlBKsT6CnZwtCQn3fmKh0KrxhOdYWHp+A/d9vWENtl5CnGCjRa96WFw
MpFf/r8FzX/S/OMUzCV9i5CB6X8phLGU61LYsvIvGCjN1G7wuuUtP1J4oRCeyohy
/WhdUteKnl3lQtJbHAKrEzngXtzGveO6T7wUxAicoh0e51Px+oGZNQSEkj63GjW/
og2BJjEx7GCA5i8Bax+c+rj65DH6uVEEY/mVotTE5s2d5hMc72tt+MER5PgqUgM+
kmiYHpomlKHLRQF97jFn78z6fgpU5aJCDvK4ckVRk1cxtxF8nda//b4KFFHBO1g6
CWj0W3NQknhqE9447Teo1OoxYyaMFdANGOwF7VQQe2Sx5M6ZpUXFP0fEdSXyV6HQ
Xl0ODO1iUNMVaRlwn4Hwe+eDVqJ/nkSMsJz5cwX+j9dGSKX2MpvHFxhfbuXJ50LJ
kh2SySkrbCIE+WhZNb8lqxI/0IJuw1+MZkS8drEOdndnstcxoInd8lUQyHjp+ZM6
nhvG3+wquh1ZBKIJhFNBiYCyfMHE1dAV6K9IWnWOJhburhcy1hOrT4m2oU0d2+5T
PmQ9mLrTzWHdFzVCtQoYIZisl+5pBkz7buqX47QepdqMeEPhzxI17h4Wo5BH8eWy
GW4otrEBVxNMk8pEj9aOjLER+EYGVMQSyGt1YQ1iz8LsMIHWxVUGQNTLoid44B0p
FKAV1WG5hskhp8lLmfgZurpJeOj7F50lG7RkhA/zR4XhHNRah7JVpqVzVMmGOz3n
wecsSGrZaRE1nrb3miwRxHA5ZEwD+kPpNKoYHM+F8vfGfxUwLXfhv7lpQwcagotu
41Hf0x+xIF8jtClHTvGnurZmKW/Dgf2tL7glV7gM7gF4I7Go3SJdgmC9S7yryeIG
hf5YUd1PjSC+07nscprskq3a4UD8rxwDMVIxFWVPDsrlEKjC4YKdizGAMu7cNGO4
K2af6tLq4XfMxQiKhc4c8yD1P4RMauLwqGvC0rQpudlhBkHe800jkHi9CzIWyJAD
sC/z4r71rFWzW2obUW7phIhW246ZcEVTvDw85HXb9dxiL3wwUtRnJGy04bTw8pyg
+SQekeuC2X8Qkani/8fonHA32vFBx4EUJOBGiBTfyYPiZqgh+Au20PTh13b4qIs7
28iPYNTSjnf/GdPVhEuztnUyW8yOzItIAUpjdymovZYmXjn5ZZti1JEMLHoVYV5n
zhl2i6zrYNKBZhf5qKNTV9sX2gvUzma6xCWPJtEDsZ0qpMk+1B7A2IJTuDBhNkjU
0FTGWxeXZyeI4vJU3rZqSvM+97MrjUft6ZI4Nfbbvq9p2rmlANVCWLlstqvfWmJo
jeU7maRB/VLiJDC67U+9IQKcSGtD0gavE3F3TwcJMkZQcQtGhvEdND9Rc42jr7PP
9fwTIkNGS5WYxfAECUyMucHK0uL290PKzwAAAAAAAAAAAAAGChYfKi3NLUFyb24g
V3Vzc2xlciAoVGVzdCBQUUMga2V5KSA8YXJvbkB3dXNzbGVyLml0PsLMuAYTIwoA
AAAsBQJlR5VJIqEGZu9S070n0dXKqzfATwHRw9v9OMdBUvMfBFmeuoqIzsoCGQEA
AAAAQ4cgh/W2E16mBK6y5H8efs609C2Cxqxx1qRIqiOmI9M+qMy3MPRm/3693aVe
OT2VDHOhRKPucdDAwge06TWz8aH7R/yrAA3JAilYkSuL83RSWM8sV80t3TcCf/og
PIroWtoDM/VFkTX0JERxsI5E6EsR0u2HJfKxLzsnJombIS0IG0B4P+ylJ21Unna2
jTRTlf6YjFnYlOYR4WZ87MoQDW/JfGPdgvUY8ExVysqEqUT5ZSwepO/yh0ZJn1Sj
CBHUrH7IzRnL5HoQC4izLF2fZs1Ia+Ho1OcyqnppYBXBpSrJq29SoYQa7NNk9yIu
lSCdtGIcx7LzNxNYBAU9RPebPGTLkPD2g90yPrlpUgHmH6zzkTxSQxH4ll/M6N18
QKfLNZRVj5Zmpx8Utr0qA8NS/QTGTWIPHSCDMLF0yTmGt+BHD9leZrc4yHBsc0Gf
Wo6AVvcNLDBMgCRp3HQuDqOg6T8PIvPnfjdENc2GaKf57zMjDOeu0nNRWTyFHXML
S+lQFqM19kRclb/YDVd9gAhNs3fkq+p+rqWOXZCMFhX+vDtEdGTZbyYd1sBWkqAa
mh5WCUneaCSyqGC5cFh7gcy23M2/+hiLVoutHb/JSRdeiOW/c5U4nt/NJ1Vlq34F
3zMxIVIITQsveO35PtmqYbIlxDsE1yh1FBz4Pq29YZoQnj4bdQFjlKNEa9E/kP3v
fV9yUCDcW5JSAvBsVZypNqGf/m+3w5mGCY91N+Qztoe3F3ohpERZtlrYlTQ9DPIj
ttGqWqLYKNMv+BQc1DfU7tOK4WF6ZbcC9vqIzHxo4rnobHXriFmYHyijn61WIzwx
d+J+sIsEBh6ZVMs3uRBhAnMks/q0qyi5cdxU4mWS89NIrFfMOpXPQy0QQoxE5YP0
TwKD3jmo18yMMUL5JwWyaCYQOz7m13FpqNT+8RcY49RWr+4fkW0NVg1y7F3v3RSC
6k94NJtd1NVfHqkXwFZlOJBImyyaDChvgS5owYgsFn2pgbMPaifh0f7ZjWg14QyF
V03avMqRcvyWCk02Yr1vRmWYDo4DHSTMENifj3S014YtdIQUIZ+VsnVIUTVE9w3H
WhckHJY72b4TOo6Sxx2q+a0lHI9qTCHDwCkrKUL92QnBiC/ykCI02SklH9bV8KoH
QjNAGeRXqbaY7d0ON8nEy0eM8vSB2d444qaD+DzxT7vGj9BrEyTllu0RxCZ2s6KP
elLVeg134i5YyN1o28+98ZjdJSepRZhSnaJcPwUQF+0rPqpfz1qlfl9nyijUjt5i
8ubemMGYE91Ajn95LFKb0RlhblyWeddA9Incr/b83+QQIXSTmUm5ObrCVTpLRfMi
A81jWmRW+riLyn8m4tcxioxhNtzk9okV3TFM+Qnay1hCYzLYeU7m0m+tJJ1PFLWx
q6S8sxmqRAz+hfCEq4H0uZKU78cB7bqdHtuqbKvbtQM2EgCPmSN0Ws8fxgWxcO0x
9zMt4vQepuBDFBFS3h2dXh00jtk49I0GOCdhlWSSwBjbq7mha18SZcRrNR/2qY4a
G1NaelIXBhgdcGb0m5l7macLOdTC/3wQWq2S4Doa0m0jfmF3HxPHdKQrDNKc2LyU
kWfHQVk+u3JJaEM9bfN5/B6Z4ih2EkfWCO+O3upvTAGpK6gBvMqDa2SpvhpXnwNC
cpGl22WZxLOIZjUEXQkwkBOdikjFc0p+Uj4LQJowKdJFQuWrQLGZcyql5UPDvaxE
/AXeuUkoHmN91clXR7+00V1+Y6XBeq4U2WaGHHdNdlh9c7H3q+DJXo2ZAO0e8PWG
DC4+PRFsYY5k7VcmzgsvM5zGcXinVR/Ob0T/dVxNqu00VG01L1Ka3eqC6Pcp0fdJ
mCDavkLPfBA4zB2CuVZRWKetE12VNy2zOrI+l1UkTW0czUzvt2mCvK+KDcurl42W
A/TAEX/T21jRHU4hQ4nr5ovYoMdXimzjBGyKVkiG5ZLG1MtHvOeFNl/OKWdyKrLo
JxpQM3RQfaa/LoAd1b1QZcEpKqGKyaUTnOK2VUaBfO6BQx/aDXvipphU8/Bn7UqI
ldjFSa22GWosVp8IWFFOLCGyJU632EgTpZMwYeUOwEnUNs1yaXKrZL0zA3FG5xoP
8qkcUHK45p0r7sXAC2nUbZQyXJJ7KTbLBWNTYB/RlKSN87G1zmWjsPA0P0jy9dy0
+jIZkNl2PtLy5apa8iq9UyYfiXklSIt8SO0VqXRTO6qDfKnKECrjZUUXgEl8irse
EnhtW1x0/zj8iwg6By3o9JC4CVjvlgycVOpZfFx3fR+Pi0MqFILoRPxG2NCW1z/6
ACB6Dn3wWEER1cz00AP6d2SgQ6vw4SrFHkr3Wv5e/xgr6avyrcDyrB8/nJJCmqmW
n5Uldn/nOH92uhI3jqK/behuPe6fBp6APecOQRgHsACdWKPzzSaojEY1NqnviV4+
Ynm7rYy1BT8ywMEIfPIPPHaNdk9NbPNO2Hy87R+6nW4mx+EMm3/KDCyfUF471pSr
3krmZuHAhfDOWjG+pEz27ri5Ua2l+/1fd6eyaFYSwIY72RhrA2YmWNXDOIq2CcpR
XFtthyjmdrw2W/eFl326oIg9Ve9e9kBAQ+K8IRkldSVSAX209U7WAINabsBhV6lk
9tbXbwFj4zsJxbP8sRmkZex0Z97tvfmkt+dqDAamKMmugySbnmca3Z2rsLVihque
x1immQWhRb9/SBKoecMLPTFNatJ97f9JiBAkUYUwrICIsP66a9DjhKgrYG1XzXLX
6hx8HaxNrPEkOXk91el1d4f+lvVbt+tyqwIuRobfU6RTOwZ29IrVVY/tJKDWYDvV
490xnG/BHqVM9/fcUb5swnLxr4hMcv85YFFwB7625GIxgyW/fwoJudAhUIbfzJp/
4nX71SICzEWEK6c6f4EcPcu6xhkLhaXPACOwD83bZZ+2lg76yluR1EObh1+FVKE5
8mngWWUlcOd4AV+sl6PWOKYAfA5ql/pw3POlK6s1fEYx9Zqa7gvHOJNRSa8iFyeL
w+VV2pk9WZCTkqahHyDZB+ywfrZ7igjjBOxwbDfqgmWDXiWf6AGZseJu9ZK6zDyr
cSxxfDolinQtX30mFrA5tViSDSfgpbCVtTr2SR+mdn8wYZRsdTzc8QTpo0wu3JNG
Mus2RjgC8dFXbj+gYtmUt1IaBObqP7Iff/T4g6+YeXqlxRrOxRap1CetmklmbR0A
bTeWa0D+xtr7LgTdSOED+zhtor5ywtDIln/AdJpGIpEY583aQIUL9A1FYu7EIhIP
T+me5HmKcOe/Yg4bKVoL4mutn17HgUm8PG5/Oclx04yTtDcs9I3oqwAOAjiE8+dX
oNgPGrrFpYylf9+SavyXLCusfEi3/ZPLMv4AVoURzz+eO9wx8anR58bCQLqD9vK/
ZN/kB5D4P0Qd8ilmjIQyTGpYz2oUNQpsWJH9DutBpy4Aiasdqrm4/9sUQAM+3Leb
j2Ri0rLPFvo20QXZg7KCnBgRu6K+qa8wvxPpRFLl9nFqv6qEb6qcNI1mUo9P81O9
w1FrUgUKF1Zy9+GCz8g4YRnHaiSolsumIQW8ihNIkcHNOT5NCKzUAJ3JjBzwlFR1
rRTN6E0h7uI8LG98P9L7hU2GbkILCso7/VmmtY6+Wfixv23sN6YdnYNv4OYtl3tf
vuZ0CbqgZBC5XMhbOhtSlMq6iYB0kctVL0IMzsboPavI6NbGIftR4cblr3MsPABj
B86QJMVJq6ypDovoWtbJGY5DrL/HnUFhTLkEJZuEaVILUZ7Ao2M646CEm3Z/Asv6
+xJqTYarUW+0McCuKGmxmkRNr7HKdDWby+pSSIyET+K9Bb/KDQP7WWCpGt0nTgqE
KThgE2rA3oQY9jBQK+hgXvMc76zSSyp/gbHbt7gjxVKYaVUefj/Dqt1RTUgkIlL5
Fw3CK5kDfykdh8m2k2qKevoYm57UYmM2eIHsGlP9RaIdsGr68GwQdcFbT0uRvrAS
iu1N+5x7ygQyQZ8aSLG5PiQGgwlXGKERWktet6HS5h96S1+ZlscuApcIEI8A/070
6xPI0uohMvAZf7KyM7wuACfz3uoMYU4a6311583i9BiP6KEaXQvcdrmI8DDlKXQr
6EzkWqn0txLmZcUMvD1Pt+0n8A0WhpBh6vwRZTmOihpYhzDCa3vThEgt9yjqnfmw
vJhHOZh34xOgztLzXLCgKJgJJwRVwOClMJUZu72xAdbWYUsHO/EAaGHlNEHAJ4Xp
ale8KmfsMp2+QFYkS06ehpe6oG1IhPW8O5E4DF0W1k9oXo3fbtp9VqQO4aesqVfA
T5Xk+FKWVh913bqzk4dWW+KFXAD0RYVbOtox5vUK0PYCJ4CVWkKEVPQLCmu3gp0C
r7XdmlnbxAyozx+rrW9IMSloLijr7N9+1W8AgV7uAtKPyJMHJvbrKEx8FJVVfkym
5S5XHtPHW5cNO/lYd5afi8/Ny0yI5yI8P3KNvMDE71KGx8gbK1dfmMrT/RqdujdH
e5q/zxw7Ym2Rn6vL2gAAAAAAAAAAAAAAAAAAAAAJDRUYHifOxAoGZUeVSR0AAATA
+80LVzJ5vaqsL8ZntU7zgI+MVI1HMYE/shyFQxlu+npKWj+5MDUDxUxu4FjNvAlq
GWWUJqPXWW/Osqc1BHV4mW5UEhZAewn6Z6VRATjFBMoFO5kEMKBmuXb/GGfrfLWA
BQuk0b4RuV/U2amQQVjBYa5PMjCkVKfco2A7wMtXF7R7hgujZ0o+oZN5BlViyTak
ai2s06ZZJzljsr0mIhvzV2K46Ja1hYW/NUIvDJWjInuOAjk9uyO9MpKBjKNBoCda
i5ydoxbuvDHftnFyZYFeqm+4OHqicBn0XAqv4CFhx4irRyUvIQVLEltsYYnqUmOM
5EZVUggbVhbxiUj2cc1GzEIbSl+MkZdokHgBeRcC2C+SskohCLEnZSG052PUclQx
i6n4dCwrLAhxpYKW7Bu6mmhZcykRUTuCM6dKAb5p+CTue4Qr1QAqRsxmwlNrmgyO
h8xeeoSQEXb4+VWpy3xdF5nUPM2Om7Z8JxkV5cJ1s6qqZztY7BiLBpYWgcIxdnI4
yUi5EMwBIijXAqlABcrp2z/HqHPEOcyYmGdWaoREMoXceVm53FSgO4QpGLyWAI6Z
kaDs84KXUmKtxIvhQTkYxMU9JpCrRGecdlyCyRoS8R2kWr37tn9RJXZZWQ0xsnbY
ZpcZk4yhm6WWxjlGc8xXJxiCyhdc2GJQUUGkNIk8Y0RC9ldQBVYOqEjLyK6p83+j
8WaOVKiLEhUhVx/DVL5tABBOanBeEGV60ZbyI1JU2MW7nHVf7BeZG3CCQpO000rh
MjtxIIZ9bGbN65uOWUp90yebYE6ZpEVHhKH+i10JnK0EBmdw2WVEJDF2AnLdbGuS
daL1ysvJdJWvQ7+HNnccclzQU4aBJIIypayK4xU1YVKr2lvkuUJTe0pRjFPSK8aM
aVqIi5Z/coiknCuLY3qzfJR5co40hl1+irfqWhlE6pp12XXzqlsvEAB0SaWCgl4Q
uSDZemj8wyHK9munOoJg5w6vc8CysQY0/EqjiB9FA36YAilDJ2TMZBBOYY9ihUQ3
Mj/Hg6OslCvaFSLDNR1AKIBam0btPJfSjH15qrqBSqyw+4iCh1cX4zvqRx31h7Fp
e3pmBkZ0+zn9ygsz+o7wW8AIoLFD+xuYmhKuxboH6JAGkFaCeqe/yDaTOL4iDG/b
kmFIJ6b9ZJbxWThXeEGZIHUMhxiyBVMEqG4gAlCaYpRiqSyRhDZc0ByOp4sxtiGb
hAcWQjvDoiFAo5UCtxHRdXAnGJ5dzApxvDaHdHh95BTL21AChG16HGfG8Zme0Q9S
OAvCpJPhB8/Rdcje1G811ABqIgRUQMCqtEBPCyv8Kph/tIigsJM5F6/OEA3kd43s
tcbn1FVsiU1ViqtYimGKglSRdh0ocpAJS7fdFVTsWniK/J02OGdWAgx0mz0/J4Zp
8JlMkDIOEgFJVw2Gp3lkGRkUDDrtNwGDo56Q0s5oUhCOynKHhpzpeMPnsMNF40gn
R1yGNGRUcCG3RZ4Jw4veC4h+OrIpc44q9Dd1cimoUDSdCVrXmIKbFcDoRsFgRR0+
xX6UXCKBMmGA5RuTaqtEBT4xIHvxAm5QcYkpNU6hlIYOkgwrrFryDzVJLEYPpIPY
mDNHMKLWcdsbdERPkPuoEMLMuAYYIwoAAAAsBQJlR5VJIqEGZu9S070n0dXKqzfA
TwHRw9v9OMdBUvMfBFmeuoqIzsoCGwwAAAAA+d0g25rf6KKUVkIPxGT29YIzqWj/
hxHrxCrHbabUGZ0m5EzNei1ZlOYYWCHJEO/8r6jKcfzYMxGZaPdDNqvKatwbUvCS
DmwIJYUBbAYG+gbWyq6IrnBcQL3oD+xyd1/2mQoLEtVlSauLiSpKjp8kbc6xcD2p
koLNZ7kMvCUTXeF3LLPl3sqFmpxiy3KxjoY1tHJ+UzpRParbv6jFskFSJ2cASSsk
H0WdSCqDr2Tv1+DJuotbWWlm0CWGIVe/KHy8uOMd/3tkx1m9atNRiWT9N80zAdFL
ypWe5zjh+RiKAFM2wnCSncDwgkapZ1ZFpxuQvBB4uEFoozuRHlHnM6fvlqU1a3HT
Rnf0w2LYdicC2vBXN/dnoGiXw5fGdp8Yz1sUHv7l+kZEtt2XGo4LMhGd9v0rYtEG
ajgyUyCJmRNgq/qel8URbFIW50jLxFauaxLu6WKCgm+EJK8s8ijtYCHgBS+xpeFh
7It5vfL99T98jZPWZJgxVvvurUNYopoOXMLhUxHnYdOhGDO7kGtl8/0+BnJAI1oK
94ENLLVpBNM93nR9bTumzKdLAzblt9zfgDpyupLcZKabXRa8Lydy91bPEjVo8zys
h9/obybXcSoMn1s/QqF75K/L0oTqSKDafy0Q41SlXryazYE3sdulMvMrPd2d6jAr
kl370tIe06K407eHzSBGOM5XBxk0poYR+Nhmh3URahFO+SAlv7gF7EmpgfaTigco
bRFSD8LmujgBLbOEuPzlBNdUFooSNk8TbUijEZ4O3TtMaF1G7/W1tF9Cn/EQCoWe
uO+Hy/9V63us6OrLYTqy1kNPW+SMINbEZ04SCMKy1+2O1eiTXTZCdWIHjwDelRHc
W6QronL/H2NsDJBqNLOQB0AwssCyZC11tqm/kxwEMDm+ynGmuiCkFr5it7yXAxDT
BoHtv1yjz/8y255dfzgKWoW4RcwpCYcA4HpgaRXZepDIym1/qrWAsZe5jQpBuue7
FS75d7TzbcKL7J5Y+kO0JRNKfU41IuqQNOOBVczNDSPig0Znk9FSR60BmvhzRCNx
5GylBVkApd+qCrj3dR7G75GWEmznbUVTcPJDlD8SB6zwP8VkHDLNhZUsDFmoQZ3q
6+w2pnwvnufA0bDNdxerjPNxCNIdLgFiDkt+InDkP3EV0VDdXW9nodrFBegNnb5l
h2726uaXT5QVG/Vzw1lDnuNpLNY8dMQBe6P9TBFvgxw8MWHskltQrD4Wi9sMUnO3
mcCLxKvO8/jrzLkYmyQSBFbXONpPR6u8I1+yAlUQ6mmXs+LMhcTsLyVTEPiWxTVo
iZPcJPFpr44SVX1jySe9EToJ97j8D6B66RH7hM7L1Tcg8z/H0bVJKqSmp9C3eDdH
aubz5nSW8dJlHVN2npNnkRlzr/G2IAR5PiVE54orvjkZVzMmxPN7Dg1GsqZyLPki
ALeI/rBDTgB7awBEMD21ZFR2FMzqJj0FCMJzjvYVYVNlKT4xMK1yKGdBNjb7zQoN
Oz+zoPSnC8Etvd6CDrQpZx+uvVr+QBKrTdO4W+PlPQSIN22O+UXaNz9Jdfm6m38Z
5NU85mmxWlScnpUaZbn9YyJ3KquCOhEMZORKVwDK4KA8pdFhvFORYuQzKh/HVZpc
YjCYT5nu1FTHEVoEatEHwZ2OHWH0NbSb63K6HTHiuoPLfDr2mQbS8rYkjGfPxSqb
4h3sxnnobMQJmu04ZJWM2D5YAR7K3O30lTEzsRi7Q88IwDVqYCL+481HVZVDUA21
6e8399OWx9vlQK4SDsdu0ni9M4+DiKPyBOlNVqXMQxturRC8SFvhDkohTXyVNu3n
1wheCyurkw58N1aBVoM1+oeEasDRM9h6rnHFqLm6jA/4Xzo1bxfYY35yrmBoc8iX
hwVZVTff8QfyEB50XKji8qzfBnCpq/P9mu6sDFC3w4/K1qQdoH0fU3bwvT6c8GH3
omoC/YspOLqkjKDx/ZZFqUI95pOtDieoWrOaY2DU3sBrYtasqyTynm3miCK05sq/
1CEFN3JpkYYfALgPWjZyzndDbpLTIUwjI8x5j/M/9QRNc9ZbTdtsz87RtYATTXtW
BcyrtLpfyb2wkNpt/eN5QEPIaQ1Ou46Z2Ion8mfSn4Usf94ymAe+zsTPCVIHCJMG
vTEkHxkqtoOCw/KIHwiEr47F39vQeDVc17jNf7W52irqmoO4hIX2yPvo03gtHK79
c1J5HO6/mD51fP+i1uKDr/Y6TM3pTxduqz1/cP4eVNJ6wbtmkYPOsACXl/jys6Eb
CUHWWzZxcgKy6MpiS7b1g8ryg4jw8yyDshFkQ6+lix4qwJ31SXJzTVtGCIsvITy0
K7M8g1FnMC5XxkB9MpLDCCqeoD0/Qm5LdL7NAQ8031ifaMOmE8nSopqrA88Eet0S
QBfWj5aLjoSqsvoWVFq+Svsiw+PElZ11hCjsBkwqlNWZYHK2ITo1IyJWJ6q9RikQ
ubYTBUyjIiqfLPq2scJwHVfEVYeLc7xRk3nMq7tE0ubO9KGAepSBob6cKyu7jYSu
36X4Ft4B/XT5Z5mt+63m+qfhXiuqoDo8HorY8Sg4LQH64nbw5lhk5whU3xUuIBoC
hOYgXZC5Ooj3bKsrCN1OAAlA1BrIjDriyI3PLtW87ZgwQXO/oLxk63kjmvPTAWeQ
vEMgTHbM7rpnoBgtvkwn6HVNynFicfwK7x4tp0rv/tpop38ZBROlyjbEG7gxjn+b
a34ZJ3BCxXNJwBVbdMFp0F/8fNqXRML6L70zqTbx4l90uyJ3iUIvbQ1PgcnW6AlQ
WOz3Fp/NDSIsLT3Ir0jC4XcdYTGgxj/XBIevE8KAZSCTtAUdh+ygL8VyCioAxrjW
r1875PEqFPCtxY2hIVlLlZhTyBnwwv5WE6AAhMjxZGFfupWmkq0IIDCc9AQT47m1
GTv5FFy3hJNwc/bEwXGWsKaW6YA7ZqSfTpWLwASdavH5vtvHPq6qnBrLKnuZ9Gk/
DpR5RsKqcsxF7NSY3CyDs7gds1wgRVTRYOGyZhjS7nvPxFLjR0Vo7fmy1O2YWVHM
YQ9acrc/tKTP1qDGSIBhl3hVuKrZUKKhU/pGy2pxaVNbvEXTKppd/SG377V9MPQm
SkX3Uzrw2pXvjzCFWdIzr5yK6MPMdmSyVgu7hbanXFZF5L4c59Z4rcCdGcJdEFI1
3poucusG8t/DJgaupKUjemTZHnap/Bz00oTEHGr6BIGAveeqlaNpiIO8eMKmxJeW
xzD05vGno/GZvPJQKqsftrVFjyM1iY3qDOQL6T2cWCttumXI9wzzQ+jnb/3DSyAq
sgoyMmFgM1hk7uHAeNgDjuNgcs/9iPgXefi7Rl5MOXiP1OrQ8LXGBGfeELy61si7
fqKbPlvkjMR+kAOY74CXlD3AOpZBgkrLAHDTJ/yWsvOzKqKSZCue9Tr47drryExb
/VTff0Bnwo6+qokD+oquNxlNd6ffIW5yEPI+sQ8So1YtZ+WgfRRA0sMHKyIJTRF7
t703gtg4uR3Qqvn8VPRCNXQJ6S0tWeDEstHOwS7PsOe+A5SmmhQ2WDYCo5IfLAsz
DDuUepOIJaod7NgtA8H1wRGr9FvK+EjWd25P1Jx0JIOipq7pG0csmMKmWUWhHsJU
66mBjpx5K1ncQPByVMSaIudFrekHQn76lJkCgxEPke07JMly8FEr/viuFMw6W2T+
r8c4vELvv7EqMUekh+TtwYHK8V9wHboCGT2qLQQ8rjI5w67lt4opHtWXQ+y1Kgit
Eh1yROlg79SC+1hlhCf3QWW2RRRT6DIQKLDawDuUqpGJKOeU13VfxFBVTnT3PoLD
pqmrmyXHvynZNvETWXxbOMobPVEfE0WDd+XJixwiaNHh02ULqzggpUq6bCXKzZMu
2ERg88arT8q0ruLkOYJpKlP4MzM1OiAM5w3FnZM08VrJAveT+5iiIm7rDNYM7wGn
KFecHnclacI2BNy6AyLE7tOTf3OX1DRDm8hQ8usFQNr8lV4ZWSIy6d3QEVodlv8d
2R5zjR92dqm06sNb8ypllNu0VL7HiWInibPDC6Df1BVKZT0rHIA0zOjr0yFZvKwA
HhLbcPw4SlOV40P7JOqTCIAIIoktMOfvPV8eRrhIZuiLSbAHPIhV99tWMA52SGVz
Qp28VT3jGVwMW5zpfRNWg+3N5sT2DTZy654IIjG/iGZrGoSnCNCZbpX+fjV8Pt6i
pPdi4mrVdyrSPDZ2/3fLbKV//C9PBpMRaggG1vS/vATixV4iKTstt2XKh8+wBdVt
U1fcWDLVYiL1qLegyPjnLqCLpem7kq9wm/m7eMotB45ft0Qm1vW9JuLM16r3uBLS
7zB0xheMjSsl9bXxwnwG5oveHxEI9sXXhmqYYvxqRs5nxdMWTbonsgULXHM/YyuK
R8Fg8b6aZr7wp3kqNGymi1CHggzccU6wQmCjsu/j7is4PEdaUhyY1QQRxbyZ1R88
sNnzEi4wV2eBnQs+VpKz1POSmZydsct9kuMkkJbJ9/wAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFDBMZHCI=
=SAP5
-----END PGP PUBLIC KEY BLOCK-----

Message:

-----BEGIN PGP MESSAGE-----

wcPUA+dLZWYz+VeVHXERp0akFiO0Z2CmLsrPPwr7ZuUIKxfDF4b8N+xlYRcK52GpwOEHGx9lYc9n
dxVQ+2Xq0wbJnHea9QTaDijdIqWfOoEyYEfyEeRBxjc24ZDhpsgHtr0Xov02OC2O5gzE20yp/OG7
0ZFwJ7yNBlzE1cwWEopaxJxrTo7gl42Y0gvqu0aGInyB2YjjYjOdaQ3nwPcY5Ed3dq/5z/IWc7GH
1dPirnRl/TnCmrzq//msxbnp5dSn/ayT4+W88BvjK1mNvEULymLXdE7OAEQag5SZJJ+8E9oUXd1s
qesKbFJRoIVKacQZCV0rhI4dI9hj/LbLQ95q9GFpGvA8+BhPEDedwSsB0no1fajbOm98EUKHPhZL
pyJTpCLgPKLGFe3gmh+F9QxKlVd2Z1qgfcEw5qqob+iyufipHIWMKxNuPACs9ezywOt8Mu7sil8P
u9/BX696qDABwTGMkRdIc5FpHdmNAocGNrKtn7lm/B7fTePTnxopQ7dXgAfEO5kgm4l37DBbev8F
SrxtDPJfmaRVBoJqE1YC0XBpGJ5v8baX+nduaJvkN85eWgYnxnlF2uyRTE73B0UAVyGFj4rRLa4g
cLkZKwSpF9HTwy/80Bu9pNyl/C5LbxLTFgs19mzsZUOSDbKnEUmpAbSpxyLoIbZgPbO1lYtIfHY/
c1CsmgGJVMYXzpgfIiU5a8Kovyoe0WwGp+bwCLzES8ZTxNwfBLxGbZSAtbA69U8CiCVR/eG2wW/N
y/qdS8P6tK7RN/iq5ntvYW7XcvHj5GtoLfQsYXwcoovr5v0BNeH38M8UYIxVF/VzO+1DR4cAgCGs
eWVWNlGGrJPBtJ8QgdM3FI+siFXOJHtKCFa/H1vgS5nVX+lPNLYLi299H52u9HHU4YyNBTQAsNu+
rhZ6ptVFKaVRvl46IEu2AOMojXZN7w8xRxqwat9IQGbDbYlJSIwwgeAJWa0fvK1dzaBKB4+BGtd4
TllhtPu48dtizM2hAbIlnZSj8O7qN0X9EgD3YyRJYtxbnmCwqVUovQIqeA08C6Npq5gl5gOFVabz
p6knctK9YBz1kb4rMxpiWbaluH0tdXswJced4sPWzKVZkEW1XEVAqmJKVDU7y+Cwa6FP1gMEA2AE
62BQyxzOFUVlreIF5DaCfpgV60/oOhJvvCzcj9wstABCwXECLnNkmwlOFqHsC99LOoXwCdwYE0ha
rCZoEPG16qKrK/x0mZMbmLyssOjHYbwQCDMs79K2yTdMnr1elV+hs3XijtkkRkNB2kPmmpv52riI
7EueYTuQ90wtTr++RRBbpW+nlQOdxP7jFEB1s52TFbbNpF5e3xDZ0JgwJJw/F3fhsBIpoOrntlt8
X20F/7CdDaLTXSLaMkj7lKKozljBrm1KvpZt38Cq7edzR7auUkp8z6cxPj+52u+3BRd82R84Zfed
tnvI1ceJ50sA+zLbATTUtN+0L+S8mzXEJ4baEX0tm+I7N8xiMh5Hxr1ASbqypKqdX7YJKFj9AU5n
OxWuY5SOFEp7xrJv8sR9gZTwHXuKT4MsmTdz6EkYk3/nw7bSzTwBpoAM1NoZQEOOva+g3sTSpAMH
P/f8mZ5CzBZJF/qmtSWvclFdHIGdfbkbaxFRd7lBKY5loUvSHS4O6adE/0VfvXN4lZHN5GFhBDYd
0361sGp07uhcBGcpjYZlLM/fTwROdxEa1W2IaQbl0VYcYp7FIm3BZ/a6RVfl+j+9utq3WjmBzjtF
wUpAlvKZVb9YCK+IEUMRAcVLUre3vikT6xfDDLuQXw26SfQcohZeiXyab0hn9uisLyCfXOh3RTOY
RL9Zx4xDkoOByJPUTQBHYzucnhWwVnaONM/RXtsK9DjV9L3n6jJ+gj6OsvnT313fQj+l5kprFzfz
ZUQ4tNifkK1+kOZL060ZepKO7WpYo+So3oYzBxQtNYtUcG7dRrK2X/GlDAf5SVenhW2RUmqsoO+1
jxLJbWRJbd+uBe7ZayPmnIWvjuynjyMMLAD3+f92fTJcW2EVfBjh8ygLi6wX36w15wwk/rrrpwRg
32js3Nu2JgAzKtnCBCve1AOvTuWUqkD1H1lM14yZieSi9OBsLfc8EEuFtxOjbQyCZ2l8H6k42VU5
2JAA7Fo6UMoTCm7vRjIoAFm6HrqffeOcg9TgtHS1gihxQ11/JiyS+nHS5YHDzX0c7COCFAML0VLX
BNiNGhxKyMh+bW8PosunaJ7xgHJhzQBkAkGmIke8tEmXVX+bxGnYHsdyI0VSRrFBC1C+umwP6ign
VtzqssYJbk7Kn2lkKw3NMc90TLvXwkJsN+ybKDjXlXvAwkrRAAYinsiV+t9pekPYx3ud1KHkoKtU
N2lpP/BY5NjmPw9RvE+JQyq2KXbGzzZZ9YCA9oeg2Ezu1PsqQRV9xrkbkvPNlH9DHw7UlxLBAOlC
o55o4EUcIKZ8EOvsonwWFbeTn5kXHoENoudnU88+bD4iggu8okCPS60k+7TJXoTh9E/nvw/xIv6f
SS/Auiq7PymLbUqlXuVM/1reRQaxzntohayh+C6KjzZP5tFkKZX12vFRTBsU/ngvpSeBQ1IqHHD7
kwZQkJPqEuEGM8aia9931olnI80F24x8dEK/sY+Bm6KeI7YwpeIYEQnw5ToHywQJSSv10WzJx6kg
EBqbMXW+kcd+zL4vn2lCZxg/uhwN5QFw43al4O3MN/F2IZSI9fujVtzvnyJif+PYzw6iDtcc/iSq
i1I0mktMf0vJxlxLzv517BHmcwp7KYR0fW05tl811u6k3sHvUrO9s2bse/2oz4bPuXtj6y1skzc1
s5iLxFWDizZY7yD7L+tf3K+/KB9sOCcnhb0gKId/WAgRU0QopMzTFPNRZ/x6IxzfTCmvgAIZUSQ3
UGX9fy6Lwz71ZLhBIex3KKJVcLweVXFXHFO1o779XyeATUgng3WhWlqoxN9skfrhlKLcTKjiIDwa
pUzrITWhvUOn8NZYLWwt+Fln2k21uy33Zaj4IV9OjG0mfdjxvxN235BqJ6EC2OYMiKJrRXyle6XS
hTgrSHqMnKSdRUxHy48IbjIBBKwuMniP4e5VgcMa/vT4EP0tuamjyYTOvjmuGeJnVITOe31jU5cv
pDdQivwkvB5i5iDqqm/2ysVRM7qBDHylpcnyopX54PqsN2ntsnzXA54RUVxOXsqg96+MteTMNutB
vIRZDRBNE+WWVdk8i9HnZukLj8XNGH5kgU/7dyvs8LcnDC8JBPz/Ca2uBKBJIYfFvwhCl2LDfq7J
lVveTinThAtkUzMIvlnapwKx/8+9movuaSD5ITYKWjjlH8mBqcIPFx6BoX4eH2JdVm+h8nFPPJGw
EQ3dKUMEgEl/KpZJAS4WXaLbk15dUyev/utjdKL115tFNFk25PT/VzKi1tJf4/PAkFtuNqT3+tEe
fSZG+Jcmckk3nISKMA1xGlcBRaCxJoFwE5t43ZBzreAsjBSWS4CUg7bdiemmYCP2b/rUmFwgd0s0
WnTOWfIlrHErbFqju26252vemVgICLgCsxyOLH828QW9/GsPtfALkrr9sQY3ebZjLqdBz4dAgyIx
xZs51SLU+YqHCukkdwhAjGZsXUKGkoIRh5isdd2TDfxV01KGqHXs8cJHzYyvt+JB8WuWnIhpZg5A
KtWf7yQ3ntC4HWDOu5q7h3WDtaEv7UwugNZhaY6M8k30yWy+/V8g3h42Fo1CKmx2iV27BNCE5LGv
MCW5Bvbw7cwj6w7Obs14tsrkRNl4+X23HNDWx0Vrw79MXC5+EDR9XH3D1AXCKhdC2X6hoXbH8VCz
Ou7kBTj3eHwE242kBYctMZ6qRx+Y0kXkxkrfAMkYccYgJWyLJx4TAMfodWwtCQgboNeva5KCX6Wo
2qBDPmXSwhyvrxrA2g7xXw+2ZPEA3FXZyibi119YtJZgvJrRhHeyD19ntUgxt9MMyyurz+Am6aAl
oqdWcsMuSu/YIgYXZVLKITSqcwfu5fFzX6erF3leUR/Y/KU1FOLOe3y7aOlcbKZV1/xaoQwjo5le
jwLPfXQJpJmOL0dkEf29rV5tKgK0xUkLQ7F6aXDJ986aixzYuXwtOmPQMpWWRIDzHC/wReznWfQX
aOSH1sGi9UnS9u7qwBJqRCT2xQlkcGJFaIxTbuVKXCBggKqFlZCH6Tk9LzeWbaffnbDFThj6Ihc9
VPy9XT2pm7T9/CJR6DMEQsTxoDyCA/uQMkdWm5vYHN9SCGeqxVilfUQm8YSunV7fxSZ9ptD4zsSD
hAKOlDDf9oW7tlXjV1ua9PR7aGkDRJgh7LwDL9PP7iHW+IgyhQ1Y29hmV/FnuNwYgpa76QcDN03w
TolHyhaXwT/18fOp7Eo1o7UNnEggc9kga6rmeDM6YfJOHeWEfJ7xyN+nab1m1o1NwKJ5t6KSddQk
ZPvOU99s6vv3SwmCUAmx22NZA7jE0wjY48Djiaq0og45COUGASduN77BJLUm2JslbbzKMX2gvKa6
xoFa/DnQ5KsYbfjXnJztJsMx0oXV5SbutbKyNKFEvJnOKseRzPJtXVz6Dkq7J38/B0o/r884Ak/S
puF6yWYr3/7rbtzlTlnHduxFNN80fiXhOq8QYK9tdcMZl6jMqy+FvL+ca1TAekDqd03wIbn8SpG5
SP5JcAXdggBrG6SmtxjuZMFcLHTXbAuVolz7hW3+rRlbHoyhIpwdVaQAcT9z8VLr4MFv1RuCKS+T
3vJy9Cvkg8gc+zk8uUxgVnShMcc0jxXuqEMyLBYdokyVLbBcPvqTjmGAN073kzg6lFsID5G0iQqg
MGnAbvUMGjBwr997DtHvlVa8ikSpTspmXwfKPACquoFTp2iheTdGLDL1YUHtFQg69kCanQSITps3
sNzcBfRMNw9cAMG8Sm3dfBkOeCsWzjyN2zSNhrKmbUAj3MO1XX1HlpMdIkKas83ln7nrLru17Rcz
Dl78nwqFzyBvIY+txvgooMSt8NXgHDKW2tK0VnmF6n4aE8Z97eAKggUfzBtKqHGdMRPMolO5bzrH
r8mdFSZ1EuSIeLPwiCaAp0Jpe5T1/PqwrtZbSHCVbxx4lBlTP7yYeY1+8zQUs+tYP/P2VS9BKEzL
+XveFuTmkg43mBVGRTFcBuay3zMaHrJq0YiPLa2Xkitxd1m8GQU//XfJqeGRggrxTs6QSQXuInoi
QHdP8NdO746COqrhK4Nu+53ezwdZOGL0zrV37clZ/M6HVfa30XYKZ5yLkCR5mzhVnRi/0+UhJkET
B0EF7NdS77edz4XsS3uDnWjz2rur+9+BwOyxPudW+4r+6H7vn9BAPEG7O5MlhKcndWQUV7cWRNs5
6CjFOY9/NQJ3U+7bXC/J4B04O3yFiwVsYfhTbVMpMBmrMaW4B2TuNUWhh+qIp/Wxfg3VfPrhl1vY
7r6WeiBQi4u+Go5wEVM5v2/Dpyo1YDphpwwNeojbu0yjn80MYWHklF8wrAMTYEk1D0HW6GUEEb/D
swDY4FJlfZeHyoFQhH5JzT8FJZzl3Nq843EFNfVQ3eRRVjCQClUNZcWKw8LcQB5VaR60P/QI81KQ
YNW2hq0xnzy5E6mgQzQ7gxqV5zD6asn9km5M14d/qbn8Q9LtDJA1NltCs76on/tIwzxA+i8fHzXn
qEtV6sW4/KpyAs/EaPbuMe8dNe9v4RnC2vE2x1wLmQGziA5ZileFq2671zBj33YEqS8N0KM32fhE
5/oVej91yHykCI8U4S41YoLAP0bRuBOCaG0wl22aqiRKZpgiXEYx5GqiXityAk7+tST5XXTHNJLn
WPMy9Z9IXjf0zRxW0hMNGy5yOvO4MHZMRvnXs6bnbt4REofLa9e33NK7sWiVxakQCxhbyqrdQizy
RvXMpxUo6IgTJ+dtP7/4Eky6vjKyQxiorwG0y25lp/K3l3Ems1bHF/D0Acn/0Ig+3gnntoYgJBi1
L4CgDy9kqh5FXofUP3PgEIFfU4RdLePbgT7uHplStWjDWgXy0v69k6dFbkpfVQ4UcsJxSmYiSEFY
vFFTJD/8m+1V6VR0SwLtVLmBPP/RbebGpQas0ec+yrrK+7t35ho4CXxnblgSnXJ7qigmRgAqLxqu
WgZptnCQNG97XjXzOR3im/+cqrdphtJeBG+u0yqHdq3CWFupz6r7ILjs11F0EHJBsubvq8W1rS+7
sM2tSFKO0PVnmdMmtGqD3iDbYhP5GAzdhn/bosoBzz8GxwqLXSz50wCeJLRLj+dAzObQmz6g+rGO
fKTy7nWZUGhDNLRaZ+ztEPyJQbDQPo/U/VuLj2S2aIVUTbTxpv1OtFM6byzkeghGA9/xIaTs4gyT
mFpmNbq5YzvcIIOO6qZ/W6/lhBRGG5ZuSmBT
=hAt4
-----END PGP MESSAGE-----

Plaintext:

Amazing!!!!11elfelfeins now with the cypher byte in the right place hopefully\n

Note that the PK does not sign the message. That's signed with a key that we didn't manage to export correctly (missing self-sig)

wussler commented 10 months ago

I've implemented the latest spec here: https://github.com/ProtonMail/go-crypto/pull/142

TJ-91 commented 10 months ago

Thanks for testing and creating the certs+msg! With RNP I can use your keys fine. Decrypting the message fails as you already pointed out due to PKESK v3 incompatibilities. Please let me know when your partial fixes are available and whether I can help you with it.

PS: Is there a specific reason why you generated PKESKv3/SEIPDv1 rather than the newer versions? I think we should generate two sets for the draft: v6 PQC keys + PKESKv6/SEIPDv2 and v4 PQC keys + PKESKv3/SEIPDv1 (but for now the main thing is to have any test vector that the implementations agree with at all)

Edit:

When deriving the KEK, the cipher identifier is passed as 000...000 instead of 1d (or similar)

Btw, this is due to a wrong initialization of a std::vector in KMAC256::fixedInfo(). To clarify, do you intend to patch the RNP code as well or should I do it?

teythoon commented 10 months ago

Hey :) I have some patches that you can use as a starting point. Unfortunately at the time we did the experiments, I didn't notice that you merged the work into RNP upstream, so I started with https://github.com/falko-strenzke/rnp branch v6_pqc_2306. Hope it will still be useful.

teythoon commented 10 months ago

I pushed my work here: https://github.com/teythoon/rnp/commits/justus/hackhack

TJ-91 commented 10 months ago

Thanks that's helpful!

teythoon commented 10 months ago

I also added the stock RNP with crypto-refresh enabled, using the stock Botan to our v6 test suite: https://tests.sequoia-pgp.org/v6.html

TJ-91 commented 6 months ago

Closing this since it's outdated. Thanks for the feedback everyone, this has been helpful and I hope to submit new test vectors soon.