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

  • v6

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

  • v6

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

  • v6

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

  • v6

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.