OpenPGP interoperability test suite
These are the results of running the OpenPGP interoperability test suite version 0.1.0 (1faad1f) on 2023-05-11T10:37.
This test suite has been very successful in identifying problems in many OpenPGP implementations. If you want to see your implementation included in these results, please implement the Stateless OpenPGP Command Line Interface and open an issue in our tracker. Note: The implementation doesn't have to be complete to be useful.
Test Results
Asymmetric Encryption
Encrypt-Decrypt roundtrip with minimal key from RFC9760
Encrypt-Decrypt roundtrip with minimal key from Appendix A.3 of RFC9760.
Additional artifacts:
Consumer | Sequoia 1.14+crypto-refresh | LibTMCG 1.4.0 | GopenPGP 2.7.1 | OpenPGP.js 5.5.0 | PGPainless 1.5.2-bc174 | RNP 0.16.2 | PGPy 0.6.0 | GnuPG 2.4.0 | GnuPG 2.2.40 | GnuPG 1.4.23 | Expectation |
Comment |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Producer | Artifact | ||||||||||||
Sequoia 1.14+crypto-refresh |
✓
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 20 3a 29 Hello World :) |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 20 3a 29 Hello World :) |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern. | |
LibTMCG 1.4.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GopenPGP 2.7.1 |
✓
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 20 3a 29 Hello World :) |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 20 3a 29 Hello World :) |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern. | |
OpenPGP.js 5.5.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
PGPainless 1.5.2-bc174 | ✗ | ✓ | Interoperability concern. | ||||||||||
RNP 0.16.2 | ✗ | ✓ | Interoperability concern. | ||||||||||
PGPy 0.6.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 2.4.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 2.2.40 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 1.4.23 | ✗ | ✓ | Interoperability concern. |
Symmetric Encryption
Argon2 encrypted SEIPDv1 message
Tests support for Argon2 in the context of symmetrically encrypted messages. These are the test vectors from Appendix A.8 of RFC9760. The plaintext is "Hello, world!". The the password is "password".
Consumer | Sequoia 1.14+crypto-refresh | LibTMCG 1.4.0 | GopenPGP 2.7.1 | OpenPGP.js 5.5.0 | PGPainless 1.5.2-bc174 | RNP 0.16.2 | PGPy 0.6.0 | GnuPG 2.4.0 | GnuPG 2.2.40 | GnuPG 1.4.23 | Expectation |
Comment |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Producer | Artifact | ||||||||||||
AES-128 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern | |
AES-192 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern | |
AES-256 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern |
SKESKv6 & SEIPDv2 encrypted message
Tests support for SKESKv6 and SEIPDv2. These are the test vectors from Appendix A.5 through A.7 of RFC9760. The plaintext is "Hello, world!". The the password is "password".
Consumer | Sequoia 1.14+crypto-refresh | LibTMCG 1.4.0 | GopenPGP 2.7.1 | OpenPGP.js 5.5.0 | PGPainless 1.5.2-bc174 | RNP 0.16.2 | PGPy 0.6.0 | GnuPG 2.4.0 | GnuPG 2.2.40 | GnuPG 1.4.23 | Expectation |
Comment |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Producer | Artifact | ||||||||||||
AES128-EAX |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern | |
AES128-OCB |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern | |
AES128-GCM |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✓
00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 Hello, world! |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern |
Detached Signatures
Detached Sign-Verify roundtrip with minimal key from RFC9760
Detached Sign-Verify roundtrip with minimal key from Appendix A.3 of RFC9760.
Additional artifacts:
Consumer | Sequoia 1.14+crypto-refresh | LibTMCG 1.4.0 | GopenPGP 2.7.1 | OpenPGP.js 5.5.0 | PGPainless 1.5.2-bc174 | RNP 0.16.2 | PGPy 0.6.0 | GnuPG 2.4.0 | GnuPG 2.2.40 | GnuPG 1.4.23 | Expectation |
Comment |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Producer | Artifact | ||||||||||||
Sequoia 1.14+crypto-refresh |
✓
00000000 32 30 32 33 2d 30 35 2d 31 31 54 31 30 3a 33 36 2023-05-11T10:36 00000010 3a 35 33 5a 20 43 42 31 38 36 43 34 46 30 36 30 :53Z CB186C4F060 00000020 39 41 36 39 37 45 34 44 35 32 44 46 41 36 43 37 9A697E4D52DFA6C7 00000030 32 32 42 30 43 31 46 31 45 32 37 43 31 38 41 35 22B0C1F1E27C18A5 00000040 36 37 30 38 46 36 35 32 35 45 43 32 37 42 41 44 6708F6525EC27BAD 00000050 39 41 43 43 39 20 43 42 31 38 36 43 34 46 30 36 9ACC9 CB186C4F06 00000060 30 39 41 36 39 37 45 34 44 35 32 44 46 41 36 43 09A697E4D52DFA6C 00000070 37 32 32 42 30 43 31 46 31 45 32 37 43 31 38 41 722B0C1F1E27C18A 00000080 35 36 37 30 38 46 36 35 32 35 45 43 32 37 42 41 56708F6525EC27BA 00000090 44 39 41 43 43 39 20 6d 6f 64 65 3a 62 69 6e 61 D9ACC9 mode:bina 000000a0 72 79 0a ry. |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern. | |
LibTMCG 1.4.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GopenPGP 2.7.1 |
✗
00000000 |
✗
00000000 |
✓
00000000 32 30 32 33 2d 30 35 2d 31 31 54 31 30 3a 33 36 2023-05-11T10:36 00000010 3a 35 34 5a 20 43 42 31 38 36 43 34 46 30 36 30 :54Z CB186C4F060 00000020 39 41 36 39 37 45 34 44 35 32 44 46 41 36 43 37 9A697E4D52DFA6C7 00000030 32 32 42 30 43 31 46 31 45 32 37 43 31 38 41 35 22B0C1F1E27C18A5 00000040 36 37 30 38 46 36 35 32 35 45 43 32 37 42 41 44 6708F6525EC27BAD 00000050 39 41 43 43 39 20 43 42 31 38 36 43 34 46 30 36 9ACC9 CB186C4F06 00000060 30 39 41 36 39 37 45 34 44 35 32 44 46 41 36 43 09A697E4D52DFA6C 00000070 37 32 32 42 30 43 31 46 31 45 32 37 43 31 38 41 722B0C1F1E27C18A 00000080 35 36 37 30 38 46 36 35 32 35 45 43 32 37 42 41 56708F6525EC27BA 00000090 44 39 41 43 43 39 0a D9ACC9. |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 |
✗
00000000 | ✓ | Interoperability concern. | |
OpenPGP.js 5.5.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
PGPainless 1.5.2-bc174 | ✗ | ✓ | Interoperability concern. | ||||||||||
RNP 0.16.2 | ✗ | ✓ | Interoperability concern. | ||||||||||
PGPy 0.6.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 2.4.0 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 2.2.40 | ✗ | ✓ | Interoperability concern. | ||||||||||
GnuPG 1.4.23 | ✗ | ✓ | Interoperability concern. |