168349Sobrien 268349Sobrien#------------------------------------------------------------------------------ 3276415Sdelphij# $File: pgp,v 1.11 2014/11/11 21:32:38 christos Exp $ 468349Sobrien# pgp: file(1) magic for Pretty Good Privacy 5186690Sobrien# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html 668349Sobrien# 768349Sobrien0 beshort 0x9900 PGP key public ring 8186690Sobrien!:mime application/x-pgp-keyring 968349Sobrien0 beshort 0x9501 PGP key security ring 10186690Sobrien!:mime application/x-pgp-keyring 1168349Sobrien0 beshort 0x9500 PGP key security ring 12186690Sobrien!:mime application/x-pgp-keyring 1368349Sobrien0 beshort 0xa600 PGP encrypted data 14186690Sobrien#!:mime application/pgp-encrypted 15186690Sobrien#0 string -----BEGIN\040PGP text/PGP armored data 16186690Sobrien!:mime text/PGP # encoding: armored data 17186690Sobrien#>15 string PUBLIC\040KEY\040BLOCK- public key block 18186690Sobrien#>15 string MESSAGE- message 19186690Sobrien#>15 string SIGNED\040MESSAGE- signed message 20186690Sobrien#>15 string PGP\040SIGNATURE- signature 21186690Sobrien 22186690Sobrien2 string ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK- PGP public key block 23186690Sobrien!:mime application/pgp-keys 24276415Sdelphij>10 search/100 \n\n 25276415Sdelphij>>&0 use pgp 26186690Sobrien0 string -----BEGIN\040PGP\40MESSAGE- PGP message 27186690Sobrien!:mime application/pgp 28276415Sdelphij>10 search/100 \n\n 29276415Sdelphij>>&0 use pgp 30186690Sobrien0 string -----BEGIN\040PGP\40SIGNATURE- PGP signature 31186690Sobrien!:mime application/pgp-signature 32276415Sdelphij>10 search/100 \n\n 33276415Sdelphij>>&0 use pgp 34276415Sdelphij 35276415Sdelphij# Decode the type of the packet based on it's base64 encoding. 36276415Sdelphij# Idea from Mark Martinec 37276415Sdelphij# The specification is in RFC 4880, section 4.2 and 4.3: 38276415Sdelphij# http://tools.ietf.org/html/rfc4880#section-4.2 39276415Sdelphij 40276415Sdelphij0 name pgp 41276415Sdelphij>0 byte 0x67 Reserved (old) 42276415Sdelphij>0 byte 0x68 Public-Key Encrypted Session Key (old) 43276415Sdelphij>0 byte 0x69 Signature (old) 44276415Sdelphij>0 byte 0x6a Symmetric-Key Encrypted Session Key (old) 45276415Sdelphij>0 byte 0x6b One-Pass Signature (old) 46276415Sdelphij>0 byte 0x6c Secret-Key (old) 47276415Sdelphij>0 byte 0x6d Public-Key (old) 48276415Sdelphij>0 byte 0x6e Secret-Subkey (old) 49276415Sdelphij>0 byte 0x6f Compressed Data (old) 50276415Sdelphij>0 byte 0x70 Symmetrically Encrypted Data (old) 51276415Sdelphij>0 byte 0x71 Marker (old) 52276415Sdelphij>0 byte 0x72 Literal Data (old) 53276415Sdelphij>0 byte 0x73 Trust (old) 54276415Sdelphij>0 byte 0x74 User ID (old) 55276415Sdelphij>0 byte 0x75 Public-Subkey (old) 56276415Sdelphij>0 byte 0x76 Unused (old) 57276415Sdelphij>0 byte 0x77 58276415Sdelphij>>1 byte&0xc0 0x00 Reserved 59276415Sdelphij>>1 byte&0xc0 0x40 Public-Key Encrypted Session Key 60276415Sdelphij>>1 byte&0xc0 0x80 Signature 61276415Sdelphij>>1 byte&0xc0 0xc0 Symmetric-Key Encrypted Session Key 62276415Sdelphij>0 byte 0x78 63276415Sdelphij>>1 byte&0xc0 0x00 One-Pass Signature 64276415Sdelphij>>1 byte&0xc0 0x40 Secret-Key 65276415Sdelphij>>1 byte&0xc0 0x80 Public-Key 66276415Sdelphij>>1 byte&0xc0 0xc0 Secret-Subkey 67276415Sdelphij>0 byte 0x79 68276415Sdelphij>>1 byte&0xc0 0x00 Compressed Data 69276415Sdelphij>>1 byte&0xc0 0x40 Symmetrically Encrypted Data 70276415Sdelphij>>1 byte&0xc0 0x80 Marker 71276415Sdelphij>>1 byte&0xc0 0xc0 Literal Data 72276415Sdelphij>0 byte 0x7a 73276415Sdelphij>>1 byte&0xc0 0x00 Trust 74276415Sdelphij>>1 byte&0xc0 0x40 User ID 75276415Sdelphij>>1 byte&0xc0 0x80 Public-Subkey 76276415Sdelphij>>1 byte&0xc0 0xc0 Unused [z%x] 77276415Sdelphij>0 byte 0x30 78276415Sdelphij>>1 byte&0xc0 0x00 Unused [0%x] 79276415Sdelphij>>1 byte&0xc0 0x40 User Attribute 80276415Sdelphij>>1 byte&0xc0 0x80 Sym. Encrypted and Integrity Protected Data 81276415Sdelphij>>1 byte&0xc0 0xc0 Modification Detection Code 82276415Sdelphij 83276415Sdelphij# magic signatures to detect PGP crypto material (from stef) 84276415Sdelphij# detects and extracts metadata from: 85276415Sdelphij# - symmetric encrypted packet header 86276415Sdelphij# - RSA (e=65537) secret (sub-)keys 87276415Sdelphij 88276415Sdelphij# 1024b RSA encrypted data 89276415Sdelphij 90276415Sdelphij0 string \x84\x8c\x03 PGP RSA encrypted session key - 91276415Sdelphij>3 lelong x keyid: %X 92276415Sdelphij>7 lelong x %X 93276415Sdelphij>11 byte 0x01 RSA (Encrypt or Sign) 1024b 94276415Sdelphij>11 byte 0x02 RSA Encrypt-Only 1024b 95276415Sdelphij>12 string \x04\x00 96276415Sdelphij>12 string \x03\xff 97276415Sdelphij>12 string \x03\xfe 98276415Sdelphij>12 string \x03\xfd 99276415Sdelphij>12 string \x03\xfc 100276415Sdelphij>12 string \x03\xfb 101276415Sdelphij>12 string \x03\xfa 102276415Sdelphij>12 string \x03\xf9 103276415Sdelphij>142 byte 0xd2 . 104276415Sdelphij 105276415Sdelphij# 2048b RSA encrypted data 106276415Sdelphij 107276415Sdelphij0 string \x85\x01\x0c\x03 PGP RSA encrypted session key - 108276415Sdelphij>4 lelong x keyid: %X 109276415Sdelphij>8 lelong x %X 110276415Sdelphij>12 byte 0x01 RSA (Encrypt or Sign) 2048b 111276415Sdelphij>12 byte 0x02 RSA Encrypt-Only 2048b 112276415Sdelphij>13 string \x08\x00 113276415Sdelphij>13 string \x07\xff 114276415Sdelphij>13 string \x07\xfe 115276415Sdelphij>13 string \x07\xfd 116276415Sdelphij>13 string \x07\xfc 117276415Sdelphij>13 string \x07\xfb 118276415Sdelphij>13 string \x07\xfa 119276415Sdelphij>13 string \x07\xf9 120276415Sdelphij>271 byte 0xd2 . 121276415Sdelphij 122276415Sdelphij# 3072b RSA encrypted data 123276415Sdelphij 124276415Sdelphij0 string \x85\x01\x8c\x03 PGP RSA encrypted session key - 125276415Sdelphij>4 lelong x keyid: %X 126276415Sdelphij>8 lelong x %X 127276415Sdelphij>12 byte 0x01 RSA (Encrypt or Sign) 3072b 128276415Sdelphij>12 byte 0x02 RSA Encrypt-Only 3072b 129276415Sdelphij>13 string \x0c\x00 130276415Sdelphij>13 string \x0b\xff 131276415Sdelphij>13 string \x0b\xfe 132276415Sdelphij>13 string \x0b\xfd 133276415Sdelphij>13 string \x0b\xfc 134276415Sdelphij>13 string \x0b\xfb 135276415Sdelphij>13 string \x0b\xfa 136276415Sdelphij>13 string \x0b\xf9 137276415Sdelphij>399 byte 0xd2 . 138276415Sdelphij 139276415Sdelphij# 3072b RSA encrypted data 140276415Sdelphij 141276415Sdelphij0 string \x85\x02\x0c\x03 PGP RSA encrypted session key - 142276415Sdelphij>4 lelong x keyid: %X 143276415Sdelphij>8 lelong x %X 144276415Sdelphij>12 byte 0x01 RSA (Encrypt or Sign) 4096b 145276415Sdelphij>12 byte 0x02 RSA Encrypt-Only 4096b 146276415Sdelphij>13 string \x10\x00 147276415Sdelphij>13 string \x0f\xff 148276415Sdelphij>13 string \x0f\xfe 149276415Sdelphij>13 string \x0f\xfd 150276415Sdelphij>13 string \x0f\xfc 151276415Sdelphij>13 string \x0f\xfb 152276415Sdelphij>13 string \x0f\xfa 153276415Sdelphij>13 string \x0f\xf9 154276415Sdelphij>527 byte 0xd2 . 155276415Sdelphij 156276415Sdelphij# 4096b RSA encrypted data 157276415Sdelphij 158276415Sdelphij0 string \x85\x04\x0c\x03 PGP RSA encrypted session key - 159276415Sdelphij>4 lelong x keyid: %X 160276415Sdelphij>8 lelong x %X 161276415Sdelphij>12 byte 0x01 RSA (Encrypt or Sign) 8129b 162276415Sdelphij>12 byte 0x02 RSA Encrypt-Only 8129b 163276415Sdelphij>13 string \x20\x00 164276415Sdelphij>13 string \x1f\xff 165276415Sdelphij>13 string \x1f\xfe 166276415Sdelphij>13 string \x1f\xfd 167276415Sdelphij>13 string \x1f\xfc 168276415Sdelphij>13 string \x1f\xfb 169276415Sdelphij>13 string \x1f\xfa 170276415Sdelphij>13 string \x1f\xf9 171276415Sdelphij>1039 byte 0xd2 . 172276415Sdelphij 173276415Sdelphij# crypto algo mapper 174276415Sdelphij 175276415Sdelphij0 name crypto 176276415Sdelphij>0 byte 0x00 Plaintext or unencrypted data 177276415Sdelphij>0 byte 0x01 IDEA 178276415Sdelphij>0 byte 0x02 TripleDES 179276415Sdelphij>0 byte 0x03 CAST5 (128 bit key) 180276415Sdelphij>0 byte 0x04 Blowfish (128 bit key, 16 rounds) 181276415Sdelphij>0 byte 0x07 AES with 128-bit key 182276415Sdelphij>0 byte 0x08 AES with 192-bit key 183276415Sdelphij>0 byte 0x09 AES with 256-bit key 184276415Sdelphij>0 byte 0x0a Twofish with 256-bit key 185276415Sdelphij 186276415Sdelphij# hash algo mapper 187276415Sdelphij 188276415Sdelphij0 name hash 189276415Sdelphij>0 byte 0x01 MD5 190276415Sdelphij>0 byte 0x02 SHA-1 191276415Sdelphij>0 byte 0x03 RIPE-MD/160 192276415Sdelphij>0 byte 0x08 SHA256 193276415Sdelphij>0 byte 0x09 SHA384 194276415Sdelphij>0 byte 0x0a SHA512 195276415Sdelphij>0 byte 0x0b SHA224 196276415Sdelphij 197276415Sdelphij# pgp symmetric encrypted data 198276415Sdelphij 199276415Sdelphij0 byte 0x8c PGP symmetric key encrypted data - 200276415Sdelphij>1 byte 0x0d 201276415Sdelphij>1 byte 0x0c 202276415Sdelphij>2 byte 0x04 203276415Sdelphij>3 use crypto 204276415Sdelphij>4 byte 0x01 salted - 205276415Sdelphij>>5 use hash 206276415Sdelphij>>14 byte 0xd2 . 207276415Sdelphij>>14 byte 0xc9 . 208276415Sdelphij>4 byte 0x03 salted & iterated - 209276415Sdelphij>>5 use hash 210276415Sdelphij>>15 byte 0xd2 . 211276415Sdelphij>>15 byte 0xc9 . 212276415Sdelphij 213276415Sdelphij# encrypted keymaterial needs s2k & can be checksummed/hashed 214276415Sdelphij 215276415Sdelphij0 name chkcrypto 216276415Sdelphij>0 use crypto 217276415Sdelphij>1 byte 0x00 Simple S2K 218276415Sdelphij>1 byte 0x01 Salted S2K 219276415Sdelphij>1 byte 0x03 Salted&Iterated S2K 220276415Sdelphij>2 use hash 221276415Sdelphij 222276415Sdelphij# all PGP keys start with this prolog 223276415Sdelphij# containing version, creation date, and purpose 224276415Sdelphij 225276415Sdelphij0 name keyprolog 226276415Sdelphij>0 byte 0x04 227276415Sdelphij>1 beldate x created on %s - 228276415Sdelphij>5 byte 0x01 RSA (Encrypt or Sign) 229276415Sdelphij>5 byte 0x02 RSA Encrypt-Only 230276415Sdelphij 231276415Sdelphij# end of secret keys known signature 232276415Sdelphij# contains e=65537 and the prolog to 233276415Sdelphij# the encrypted parameters 234276415Sdelphij 235276415Sdelphij0 name keyend 236276415Sdelphij>0 string \x00\x11\x01\x00\x01 e=65537 237276415Sdelphij>5 use crypto 238276415Sdelphij>5 byte 0xff checksummed 239276415Sdelphij>>6 use chkcrypto 240276415Sdelphij>5 byte 0xfe hashed 241276415Sdelphij>>6 use chkcrypto 242276415Sdelphij 243276415Sdelphij# PGP secret keys contain also the public parts 244276415Sdelphij# these vary by bitsize of the key 245276415Sdelphij 246276415Sdelphij0 name x1024 247276415Sdelphij>0 use keyprolog 248276415Sdelphij>6 string \x03\xfe 249276415Sdelphij>6 string \x03\xff 250276415Sdelphij>6 string \x04\x00 251276415Sdelphij>136 use keyend 252276415Sdelphij 253276415Sdelphij0 name x2048 254276415Sdelphij>0 use keyprolog 255276415Sdelphij>6 string \x80\x00 256276415Sdelphij>6 string \x07\xfe 257276415Sdelphij>6 string \x07\xff 258276415Sdelphij>264 use keyend 259276415Sdelphij 260276415Sdelphij0 name x3072 261276415Sdelphij>0 use keyprolog 262276415Sdelphij>6 string \x0b\xfe 263276415Sdelphij>6 string \x0b\xff 264276415Sdelphij>6 string \x0c\x00 265276415Sdelphij>392 use keyend 266276415Sdelphij 267276415Sdelphij0 name x4096 268276415Sdelphij>0 use keyprolog 269276415Sdelphij>6 string \x10\x00 270276415Sdelphij>6 string \x0f\xfe 271276415Sdelphij>6 string \x0f\xff 272276415Sdelphij>520 use keyend 273276415Sdelphij 274276415Sdelphij# \x00|\x1f[\xfe\xff]).{1024})' 275276415Sdelphij0 name x8192 276276415Sdelphij>0 use keyprolog 277276415Sdelphij>6 string \x20\x00 278276415Sdelphij>6 string \x1f\xfe 279276415Sdelphij>6 string \x1f\xff 280276415Sdelphij>1032 use keyend 281276415Sdelphij 282276415Sdelphij# depending on the size of the pkt 283276415Sdelphij# we branch into the proper key size 284276415Sdelphij# signatures defined as x{keysize} 285276415Sdelphij 286276415Sdelphij>0 name pgpkey 287276415Sdelphij>0 string \x01\xd8 1024b 288276415Sdelphij>>2 use x1024 289276415Sdelphij>0 string \x01\xeb 1024b 290276415Sdelphij>>2 use x1024 291276415Sdelphij>0 string \x01\xfb 1024b 292276415Sdelphij>>2 use x1024 293276415Sdelphij>0 string \x01\xfd 1024b 294276415Sdelphij>>2 use x1024 295276415Sdelphij>0 string \x01\xf3 1024b 296276415Sdelphij>>2 use x1024 297276415Sdelphij>0 string \x01\xee 1024b 298276415Sdelphij>>2 use x1024 299276415Sdelphij>0 string \x01\xfe 1024b 300276415Sdelphij>>2 use x1024 301276415Sdelphij>0 string \x01\xf4 1024b 302276415Sdelphij>>2 use x1024 303276415Sdelphij>0 string \x02\x0d 1024b 304276415Sdelphij>>2 use x1024 305276415Sdelphij>0 string \x02\x03 1024b 306276415Sdelphij>>2 use x1024 307276415Sdelphij>0 string \x02\x05 1024b 308276415Sdelphij>>2 use x1024 309276415Sdelphij>0 string \x02\x15 1024b 310276415Sdelphij>>2 use x1024 311276415Sdelphij>0 string \x02\x00 1024b 312276415Sdelphij>>2 use x1024 313276415Sdelphij>0 string \x02\x10 1024b 314276415Sdelphij>>2 use x1024 315276415Sdelphij>0 string \x02\x04 1024b 316276415Sdelphij>>2 use x1024 317276415Sdelphij>0 string \x02\x06 1024b 318276415Sdelphij>>2 use x1024 319276415Sdelphij>0 string \x02\x16 1024b 320276415Sdelphij>>2 use x1024 321276415Sdelphij>0 string \x03\x98 2048b 322276415Sdelphij>>2 use x2048 323276415Sdelphij>0 string \x03\xab 2048b 324276415Sdelphij>>2 use x2048 325276415Sdelphij>0 string \x03\xbb 2048b 326276415Sdelphij>>2 use x2048 327276415Sdelphij>0 string \x03\xbd 2048b 328276415Sdelphij>>2 use x2048 329276415Sdelphij>0 string \x03\xcd 2048b 330276415Sdelphij>>2 use x2048 331276415Sdelphij>0 string \x03\xb3 2048b 332276415Sdelphij>>2 use x2048 333276415Sdelphij>0 string \x03\xc3 2048b 334276415Sdelphij>>2 use x2048 335276415Sdelphij>0 string \x03\xc5 2048b 336276415Sdelphij>>2 use x2048 337276415Sdelphij>0 string \x03\xd5 2048b 338276415Sdelphij>>2 use x2048 339276415Sdelphij>0 string \x03\xae 2048b 340276415Sdelphij>>2 use x2048 341276415Sdelphij>0 string \x03\xbe 2048b 342276415Sdelphij>>2 use x2048 343276415Sdelphij>0 string \x03\xc0 2048b 344276415Sdelphij>>2 use x2048 345276415Sdelphij>0 string \x03\xd0 2048b 346276415Sdelphij>>2 use x2048 347276415Sdelphij>0 string \x03\xb4 2048b 348276415Sdelphij>>2 use x2048 349276415Sdelphij>0 string \x03\xc4 2048b 350276415Sdelphij>>2 use x2048 351276415Sdelphij>0 string \x03\xc6 2048b 352276415Sdelphij>>2 use x2048 353276415Sdelphij>0 string \x03\xd6 2048b 354276415Sdelphij>>2 use x2048 355276415Sdelphij>0 string \x05X 3072b 356276415Sdelphij>>2 use x3072 357276415Sdelphij>0 string \x05k 3072b 358276415Sdelphij>>2 use x3072 359276415Sdelphij>0 string \x05{ 3072b 360276415Sdelphij>>2 use x3072 361276415Sdelphij>0 string \x05} 3072b 362276415Sdelphij>>2 use x3072 363276415Sdelphij>0 string \x05\x8d 3072b 364276415Sdelphij>>2 use x3072 365276415Sdelphij>0 string \x05s 3072b 366276415Sdelphij>>2 use x3072 367276415Sdelphij>0 string \x05\x83 3072b 368276415Sdelphij>>2 use x3072 369276415Sdelphij>0 string \x05\x85 3072b 370276415Sdelphij>>2 use x3072 371276415Sdelphij>0 string \x05\x95 3072b 372276415Sdelphij>>2 use x3072 373276415Sdelphij>0 string \x05n 3072b 374276415Sdelphij>>2 use x3072 375276415Sdelphij>0 string \x05\x7e 3072b 376276415Sdelphij>>2 use x3072 377276415Sdelphij>0 string \x05\x80 3072b 378276415Sdelphij>>2 use x3072 379276415Sdelphij>0 string \x05\x90 3072b 380276415Sdelphij>>2 use x3072 381276415Sdelphij>0 string \x05t 3072b 382276415Sdelphij>>2 use x3072 383276415Sdelphij>0 string \x05\x84 3072b 384276415Sdelphij>>2 use x3072 385276415Sdelphij>0 string \x05\x86 3072b 386276415Sdelphij>>2 use x3072 387276415Sdelphij>0 string \x05\x96 3072b 388276415Sdelphij>>2 use x3072 389276415Sdelphij>0 string \x07[ 4096b 390276415Sdelphij>>2 use x4096 391276415Sdelphij>0 string \x07\x18 4096b 392276415Sdelphij>>2 use x4096 393276415Sdelphij>0 string \x07+ 4096b 394276415Sdelphij>>2 use x4096 395276415Sdelphij>0 string \x07; 4096b 396276415Sdelphij>>2 use x4096 397276415Sdelphij>0 string \x07= 4096b 398276415Sdelphij>>2 use x4096 399276415Sdelphij>0 string \x07M 4096b 400276415Sdelphij>>2 use x4096 401276415Sdelphij>0 string \x073 4096b 402276415Sdelphij>>2 use x4096 403276415Sdelphij>0 string \x07C 4096b 404276415Sdelphij>>2 use x4096 405276415Sdelphij>0 string \x07E 4096b 406276415Sdelphij>>2 use x4096 407276415Sdelphij>0 string \x07U 4096b 408276415Sdelphij>>2 use x4096 409276415Sdelphij>0 string \x07. 4096b 410276415Sdelphij>>2 use x4096 411276415Sdelphij>0 string \x07> 4096b 412276415Sdelphij>>2 use x4096 413276415Sdelphij>0 string \x07@ 4096b 414276415Sdelphij>>2 use x4096 415276415Sdelphij>0 string \x07P 4096b 416276415Sdelphij>>2 use x4096 417276415Sdelphij>0 string \x074 4096b 418276415Sdelphij>>2 use x4096 419276415Sdelphij>0 string \x07D 4096b 420276415Sdelphij>>2 use x4096 421276415Sdelphij>0 string \x07F 4096b 422276415Sdelphij>>2 use x4096 423276415Sdelphij>0 string \x07V 4096b 424276415Sdelphij>>2 use x4096 425276415Sdelphij>0 string \x0e[ 8192b 426276415Sdelphij>>2 use x8192 427276415Sdelphij>0 string \x0e\x18 8192b 428276415Sdelphij>>2 use x8192 429276415Sdelphij>0 string \x0e+ 8192b 430276415Sdelphij>>2 use x8192 431276415Sdelphij>0 string \x0e; 8192b 432276415Sdelphij>>2 use x8192 433276415Sdelphij>0 string \x0e= 8192b 434276415Sdelphij>>2 use x8192 435276415Sdelphij>0 string \x0eM 8192b 436276415Sdelphij>>2 use x8192 437276415Sdelphij>0 string \x0e3 8192b 438276415Sdelphij>>2 use x8192 439276415Sdelphij>0 string \x0eC 8192b 440276415Sdelphij>>2 use x8192 441276415Sdelphij>0 string \x0eE 8192b 442276415Sdelphij>>2 use x8192 443276415Sdelphij>0 string \x0eU 8192b 444276415Sdelphij>>2 use x8192 445276415Sdelphij>0 string \x0e. 8192b 446276415Sdelphij>>2 use x8192 447276415Sdelphij>0 string \x0e> 8192b 448276415Sdelphij>>2 use x8192 449276415Sdelphij>0 string \x0e@ 8192b 450276415Sdelphij>>2 use x8192 451276415Sdelphij>0 string \x0eP 8192b 452276415Sdelphij>>2 use x8192 453276415Sdelphij>0 string \x0e4 8192b 454276415Sdelphij>>2 use x8192 455276415Sdelphij>0 string \x0eD 8192b 456276415Sdelphij>>2 use x8192 457276415Sdelphij>0 string \x0eF 8192b 458276415Sdelphij>>2 use x8192 459276415Sdelphij>0 string \x0eV 8192b 460276415Sdelphij>>2 use x8192 461276415Sdelphij 462276415Sdelphij# PGP RSA (e=65537) secret (sub-)key header 463276415Sdelphij 464276415Sdelphij0 byte 0x95 PGP Secret Key - 465276415Sdelphij>1 use pgpkey 466276415Sdelphij0 byte 0x97 PGP Secret Sub-key - 467276415Sdelphij>1 use pgpkey 468276415Sdelphij0 byte 0x9d PGP Secret Sub-key - 469276415Sdelphij>1 use pgpkey 470