rnp
rnp copied to clipboard
rnp --list-packets dumps fewer packets than gpg --list-packets from the same source
Description
I've accidentally discovered that test file src/tests/data/test_stream_key_merge/key-both.asc
is not fully dumped by rnp
.
It contains both public and secret parts of the same keys.
Steps to Reproduce
- run
rnp --list-packets src/tests/data/test_stream_key_merge/key-both.asc
in a top source directory - run
gpg --list-packets src/tests/data/test_stream_key_merge/key-both.asc
in a top source directory - compare results
Expected Behavior
Dumps from both rnp
and gpg
should have the same number of packets and types of packets dumped
Actual Behavior
rnp
dump is shorter and secret key packets are missing:
:armored input
:off 0: packet header 0x99018d (tag 6, len 397)
Public key packet
version: 4
creation time: 1535720149 (Fri Aug 31 16:55:49 2018)
public key algorithm: 1 (RSA (Encrypt or Sign))
public key material:
rsa n: 3072 bits
rsa e: 17 bits
keyid: 0x9747d2a6b3a63124
:off 400: packet header 0xb40f (tag 13, len 15)
UserID packet
id: key-merge-uid-2
:off 417: packet header 0x8901ce (tag 2, len 462)
Signature packet
version: 4
type: 19 (Positive User ID certification)
public key algorithm: 1 (RSA (Encrypt or Sign))
hash algorithm: 8 (SHA256)
hashed subpackets:
:type 27, len 1
key flags: 0x03 ( certify sign )
:type 11, len 4
preferred symmetric algorithms: AES-256, AES-192, AES-128, TripleDES (9, 8, 7, 2)
:type 21, len 5
preferred hash algorithms: SHA512, SHA384, SHA256, SHA224, SHA1 (10, 9, 8, 11, 2)
:type 22, len 3
preferred compression algorithms: ZLib, BZip2, ZIP (2, 3, 1)
:type 30, len 1
features: 0x01 ( mdc )
:type 23, len 1
key server preferences
no-modify: 1
:type 33, len 21
issuer fingerprint: 0x090bd712a1166be572252c3c9747d2a6b3a63124 (20 bytes)
:type 2, len 4
signature creation time: 1598873838 (Mon Aug 31 15:37:18 2020)
unhashed subpackets:
:type 16, len 8
issuer key ID: 0x9747d2a6b3a63124
lbits: 0x12b8
signature material:
rsa s: 3067 bits
:off 882: packet header 0xb40f (tag 13, len 15)
UserID packet
id: key-merge-uid-1
:off 899: packet header 0x8901ce (tag 2, len 462)
Signature packet
version: 4
type: 19 (Positive User ID certification)
public key algorithm: 1 (RSA (Encrypt or Sign))
hash algorithm: 8 (SHA256)
hashed subpackets:
:type 27, len 1
key flags: 0x03 ( certify sign )
:type 11, len 4
preferred symmetric algorithms: AES-256, AES-192, AES-128, TripleDES (9, 8, 7, 2)
:type 21, len 5
preferred hash algorithms: SHA512, SHA384, SHA256, SHA224, SHA1 (10, 9, 8, 11, 2)
:type 22, len 3
preferred compression algorithms: ZLib, BZip2, ZIP (2, 3, 1)
:type 30, len 1
features: 0x01 ( mdc )
:type 23, len 1
key server preferences
no-modify: 1
:type 33, len 21
issuer fingerprint: 0x090bd712a1166be572252c3c9747d2a6b3a63124 (20 bytes)
:type 2, len 4
signature creation time: 1598873844 (Mon Aug 31 15:37:24 2020)
unhashed subpackets:
:type 16, len 8
issuer key ID: 0x9747d2a6b3a63124
lbits: 0x8c10
signature material:
rsa s: 3071 bits
:off 1364: packet header 0xb9018d (tag 14, len 397)
Public subkey packet
version: 4
creation time: 1535720149 (Fri Aug 31 16:55:49 2018)
public key algorithm: 1 (RSA (Encrypt or Sign))
public key material:
rsa n: 3072 bits
rsa e: 17 bits
keyid: 0xaf1114a47f5f5b28
:off 1764: packet header 0x8901b6 (tag 2, len 438)
Signature packet
version: 4
type: 24 (Subkey Binding Signature)
public key algorithm: 1 (RSA (Encrypt or Sign))
hash algorithm: 8 (SHA256)
hashed subpackets:
:type 27, len 1
key flags: 0x0c ( encrypt_comm encrypt_storage )
:type 33, len 21
issuer fingerprint: 0x090bd712a1166be572252c3c9747d2a6b3a63124 (20 bytes)
:type 2, len 4
signature creation time: 1598873890 (Mon Aug 31 15:38:10 2020)
unhashed subpackets:
:type 16, len 8
issuer key ID: 0x9747d2a6b3a63124
lbits: 0x6a3d
signature material:
rsa s: 3070 bits
:off 2205: packet header 0xb9032e (tag 14, len 814)
Public subkey packet
version: 4
creation time: 1535720317 (Fri Aug 31 16:58:37 2018)
public key algorithm: 17 (DSA)
public key material:
dsa p: 2048 bits
dsa q: 256 bits
dsa g: 2048 bits
dsa y: 2047 bits
keyid: 0x16cd16f267ccdd4f
:off 3022: packet header 0x89022d (tag 2, len 557)
Signature packet
version: 4
type: 24 (Subkey Binding Signature)
public key algorithm: 1 (RSA (Encrypt or Sign))
hash algorithm: 8 (SHA256)
hashed subpackets:
:type 33, len 21
issuer fingerprint: 0x090bd712a1166be572252c3c9747d2a6b3a63124 (20 bytes)
:type 2, len 4
signature creation time: 1535720317 (Fri Aug 31 16:58:37 2018)
:type 27, len 1
key flags: 0x02 ( sign )
unhashed subpackets:
:type 16, len 8
issuer key ID: 0x9747d2a6b3a63124
:type 32, len 117
embedded signature:
version: 4
type: 25 (Primary Key Binding Signature)
public key algorithm: 17 (DSA)
hash algorithm: 8 (SHA256)
hashed subpackets:
:type 33, len 21
issuer fingerprint: 0x5fe514a54816e1b331686c2c16cd16f267ccdd4f (20 bytes)
:type 2, len 4
signature creation time: 1535720317 (Fri Aug 31 16:58:37 2018)
unhashed subpackets:
:type 16, len 8
issuer key ID: 0x16cd16f267ccdd4f
lbits: 0xbf32
signature material:
dsa r: 256 bits
dsa s: 254 bits
lbits: 0x0092
signature material:
rsa s: 3071 bits
gpg
dump:
# off=0 ctb=99 tag=6 hlen=3 plen=397
:public key packet:
version 4, algo 1, created 1535720149, expires 0
pkey[0]: [3072 bits]
pkey[1]: [17 bits]
keyid: 9747D2A6B3A63124
# off=400 ctb=b4 tag=13 hlen=2 plen=15
:user ID packet: "key-merge-uid-2"
# off=417 ctb=89 tag=2 hlen=3 plen=462
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873838, md5len 0, sigclass 0x13
digest algo 8, begin of digest 12 b8
hashed subpkt 27 len 1 (key flags: 03)
hashed subpkt 11 len 4 (pref-sym-algos: 9 8 7 2)
hashed subpkt 21 len 5 (pref-hash-algos: 10 9 8 11 2)
hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
hashed subpkt 30 len 1 (features: 01)
hashed subpkt 23 len 1 (keyserver preferences: 80)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3067 bits]
# off=882 ctb=b4 tag=13 hlen=2 plen=15
:user ID packet: "key-merge-uid-1"
# off=899 ctb=89 tag=2 hlen=3 plen=462
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873844, md5len 0, sigclass 0x13
digest algo 8, begin of digest 8c 10
hashed subpkt 27 len 1 (key flags: 03)
hashed subpkt 11 len 4 (pref-sym-algos: 9 8 7 2)
hashed subpkt 21 len 5 (pref-hash-algos: 10 9 8 11 2)
hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
hashed subpkt 30 len 1 (features: 01)
hashed subpkt 23 len 1 (keyserver preferences: 80)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3071 bits]
# off=1364 ctb=b9 tag=14 hlen=3 plen=397
:public sub key packet:
version 4, algo 1, created 1535720149, expires 0
pkey[0]: [3072 bits]
pkey[1]: [17 bits]
keyid: AF1114A47F5F5B28
# off=1764 ctb=89 tag=2 hlen=3 plen=438
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873890, md5len 0, sigclass 0x18
digest algo 8, begin of digest 6a 3d
hashed subpkt 27 len 1 (key flags: 0C)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3070 bits]
# off=2205 ctb=b9 tag=14 hlen=3 plen=814
:public sub key packet:
version 4, algo 17, created 1535720317, expires 0
pkey[0]: [2048 bits]
pkey[1]: [256 bits]
pkey[2]: [2048 bits]
pkey[3]: [2047 bits]
keyid: 16CD16F267CCDD4F
# off=3022 ctb=89 tag=2 hlen=3 plen=557
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1535720317, md5len 0, sigclass 0x18
digest algo 8, begin of digest 00 92
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2018-08-31)
hashed subpkt 27 len 1 (key flags: 02)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
subpkt 32 len 117 (signature: v4, class 0x19, algo 17, digest algo 8)
data: [3071 bits]
# off=3582 ctb=95 tag=5 hlen=3 plen=1414
:secret key packet:
version 4, algo 1, created 1535720149, expires 0
pkey[0]: [3072 bits]
pkey[1]: [17 bits]
iter+salt S2K, algo: 7, SHA1 protection, hash: 2, salt: C964B0B97C7118F2
protect count: 30408704 (237)
protect IV: c4 76 8b 87 b5 ec 0c 5e 46 a4 eb 2a 44 c6 7b cf
skey[2]: [v4 protected]
keyid: 9747D2A6B3A63124
# off=4999 ctb=b4 tag=13 hlen=2 plen=15
:user ID packet: "key-merge-uid-2"
# off=5016 ctb=89 tag=2 hlen=3 plen=462
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873838, md5len 0, sigclass 0x13
digest algo 8, begin of digest 12 b8
hashed subpkt 27 len 1 (key flags: 03)
hashed subpkt 11 len 4 (pref-sym-algos: 9 8 7 2)
hashed subpkt 21 len 5 (pref-hash-algos: 10 9 8 11 2)
hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
hashed subpkt 30 len 1 (features: 01)
hashed subpkt 23 len 1 (keyserver preferences: 80)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3067 bits]
# off=5481 ctb=b4 tag=13 hlen=2 plen=15
:user ID packet: "key-merge-uid-1"
# off=5498 ctb=89 tag=2 hlen=3 plen=462
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873844, md5len 0, sigclass 0x13
digest algo 8, begin of digest 8c 10
hashed subpkt 27 len 1 (key flags: 03)
hashed subpkt 11 len 4 (pref-sym-algos: 9 8 7 2)
hashed subpkt 21 len 5 (pref-hash-algos: 10 9 8 11 2)
hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
hashed subpkt 30 len 1 (features: 01)
hashed subpkt 23 len 1 (keyserver preferences: 80)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3071 bits]
# off=5963 ctb=9d tag=7 hlen=3 plen=1414
:secret sub key packet:
version 4, algo 1, created 1535720149, expires 0
pkey[0]: [3072 bits]
pkey[1]: [17 bits]
iter+salt S2K, algo: 7, SHA1 protection, hash: 2, salt: BD9A80A51CDCD016
protect count: 30408704 (237)
protect IV: 26 1e 71 c2 a9 6f c9 a9 bd a7 e9 13 4d 6d fd e5
skey[2]: [v4 protected]
keyid: AF1114A47F5F5B28
# off=7380 ctb=89 tag=2 hlen=3 plen=438
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1598873890, md5len 0, sigclass 0x18
digest algo 8, begin of digest 6a 3d
hashed subpkt 27 len 1 (key flags: 0C)
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2020-08-31)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
data: [3070 bits]
# off=7821 ctb=9d tag=7 hlen=3 plen=897
:secret sub key packet:
version 4, algo 17, created 1535720317, expires 0
pkey[0]: [2048 bits]
pkey[1]: [256 bits]
pkey[2]: [2048 bits]
pkey[3]: [2047 bits]
iter+salt S2K, algo: 7, SHA1 protection, hash: 2, salt: 0AA85EAED4C53C40
protect count: 30408704 (237)
protect IV: 3a 66 2d a6 00 f1 96 15 ff 19 5f 36 61 3c 49 4a
skey[4]: [v4 protected]
keyid: 16CD16F267CCDD4F
# off=8721 ctb=89 tag=2 hlen=3 plen=557
:signature packet: algo 1, keyid 9747D2A6B3A63124
version 4, created 1535720317, md5len 0, sigclass 0x18
digest algo 8, begin of digest 00 92
hashed subpkt 33 len 21 (issuer fpr v4 090BD712A1166BE572252C3C9747D2A6B3A63124)
hashed subpkt 2 len 4 (sig created 2018-08-31)
hashed subpkt 27 len 1 (key flags: 02)
subpkt 16 len 8 (issuer key ID 9747D2A6B3A63124)
subpkt 32 len 117 (signature: v4, class 0x19, algo 17, digest algo 8)
data: [3071 bits]
Thanks for spotting this! Should be related to multiple armored messages in one file. rnp::ArmoredSource
with AllowMultiple
flag should be used where dumper checks for armored input.