rpm  4.17.0
rpmpgp.h
Go to the documentation of this file.
1 #ifndef H_RPMPGP
2 #define H_RPMPGP
3 
17 #include <string.h>
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <rpm/rpmtypes.h>
21 #include <rpm/rpmstring.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
29 typedef struct DIGEST_CTX_s * DIGEST_CTX;
30 typedef struct rpmDigestBundle_s * rpmDigestBundle;
31 
34 typedef struct pgpDig_s * pgpDig;
35 
38 typedef struct pgpDigParams_s * pgpDigParams;
39 
40 typedef uint8_t pgpKeyID_t[8];
41 typedef uint8_t pgpTime_t[4];
42 
50 typedef enum pgpTag_e {
63  PGPTAG_TRUST = 12,
69  PGPTAG_MDC = 19,
73  PGPTAG_CONTROL = 63
75 
110 typedef struct pgpPktPubkey_s {
111  uint8_t version;
113  uint8_t algo;
115 
116 
123 typedef enum pgpSigType_e {
131  PGPSIGTYPE_CASUAL_CERT = 0x12,
140  PGPSIGTYPE_TIMESTAMP = 0x40
142 
167 typedef enum pgpPubkeyAlgo_e {
177  PGPPUBKEYALGO_EDDSA = 22
179 
204 typedef enum pgpSymkeyAlgo_e {
218 
234 typedef enum pgpCompressAlgo_e {
240 
264 typedef enum pgpHashAlgo_e {
276 
283 typedef enum pgpCurveId_e {
292 
314 typedef struct pgpPktSigV3_s {
315  uint8_t version;
316  uint8_t hashlen;
317  uint8_t sigtype;
320  uint8_t pubkey_algo;
321  uint8_t hash_algo;
322  uint8_t signhash16[2];
324 
346 typedef struct pgpPktSigV4_s {
347  uint8_t version;
348  uint8_t sigtype;
349  uint8_t pubkey_algo;
350  uint8_t hash_algo;
351  uint8_t hashlen[2];
353 
420 typedef enum pgpSubType_e {
458  PGPSUBTYPE_CRITICAL = 128
460 
481 typedef union pgpPktSig_u {
482  struct pgpPktSigV3_s v3;
483  struct pgpPktSigV4_s v4;
485 
514 typedef struct pgpPktSymkey_s {
515  uint8_t version;
516  uint8_t symkey_algo;
517  uint8_t s2k[1];
519 
549 typedef struct pgpPktOnepass_s {
550  uint8_t version;
551  uint8_t sigtype;
552  uint8_t hash_algo;
553  uint8_t pubkey_algo;
555  uint8_t nested;
557 
630 typedef struct pgpPktKeyV3_s {
631  uint8_t version;
633  uint8_t valid[2];
634  uint8_t pubkey_algo;
636 
673 typedef struct pgpPktKeyV4_s {
674  uint8_t version;
676  uint8_t pubkey_algo;
678 
743 typedef union pgpPktKey_u {
744  struct pgpPktKeyV3_s v3;
745  struct pgpPktKeyV4_s v4;
747 
772 typedef struct pgpPktCdata_s {
773  uint8_t compressalgo;
774  uint8_t data[1];
776 
811 typedef struct pgpPktEdata_s {
812  uint8_t data[1];
814 
862 typedef struct pgpPktLdata_s {
863  uint8_t format;
864  uint8_t filenamelen;
865  uint8_t filename[1];
867 
881 typedef struct pgpPktTrust_s {
882  uint8_t flag;
884 
895 typedef struct pgpPktUid_s {
896  uint8_t userid[1];
898 
901 union pgpPktPre_u {
913 };
914 
917 typedef enum pgpArmor_e {
925 #define PGPARMOR_ERROR PGPARMOR_ERR_NO_BEGIN_PGP
933  PGPARMOR_SECKEY = 7
935 
938 typedef enum pgpArmorKey_e {
945 
946 typedef enum pgpValType_e {
958 
963  RPMDIGEST_NONE = 0
964 };
965 
967 
974 const char * pgpValString(pgpValType type, uint8_t val);
975 
982 static inline
983 unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
984 {
985  size_t i = 0;
986  size_t nb = (nbytes <= sizeof(i) ? nbytes : sizeof(i));
987  while (nb--)
988  i = (i << 8) | *s++;
989  return i;
990 }
991 
998 char * pgpHexStr(const uint8_t *p, size_t plen);
999 
1008 int pgpPubkeyFingerprint(const uint8_t * pkt, size_t pktlen,
1009  uint8_t **fp, size_t *fplen);
1010 
1018 int pgpPubkeyKeyID(const uint8_t * pkt, size_t pktlen, pgpKeyID_t keyid);
1019 
1028 int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype,
1029  pgpDigParams * ret);
1030 
1040 int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
1041  pgpDigParams mainkey, pgpDigParams **subkeys,
1042  int *subkeysCount);
1051 int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing);
1052 
1060 pgpArmor pgpReadPkts(const char * fn, uint8_t ** pkt, size_t * pktlen);
1061 
1069 pgpArmor pgpParsePkts(const char *armor, uint8_t ** pkt, size_t * pktlen);
1070 
1083 int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen);
1084 
1092 char * pgpArmorWrap(int atype, const unsigned char * s, size_t ns);
1093 
1099 
1105 
1112 
1119 pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype);
1120 
1128 
1135 unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype);
1136 
1143 
1152 
1162 
1169 
1177 int rpmInitCrypto(void);
1178 
1182 int rpmFreeCrypto(void);
1183 
1190 
1196 size_t rpmDigestLength(int hashalgo);
1197 
1206 
1214 int rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len);
1215 
1228  void ** datap,
1229  size_t * lenp, int asAscii);
1230 
1236 
1243 
1253  rpmDigestFlags flags);
1254 
1263 int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id,
1264  rpmDigestFlags flags);
1265 
1273 int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len);
1274 
1286  void ** datap, size_t * lenp, int asAscii);
1287 
1295 
1296 #ifdef __cplusplus
1297 }
1298 #endif
1299 
1300 #endif /* H_RPMPGP */
enum pgpTag_e pgpTag
4.3.
int rpmInitCrypto(void)
Perform cryptography initialization.
enum pgpHashAlgo_e pgpHashAlgo
9.4.
rpmRC pgpVerifySignature(pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx)
Verify a PGP signature.
int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype, pgpDigParams *ret)
Parse a OpenPGP packet(s).
enum pgpPubkeyAlgo_e pgpPubkeyAlgo
9.1.
rpmDigestBundle rpmDigestBundleFree(rpmDigestBundle bundle)
Free a digest bundle and all contained digest contexts.
enum pgpSigType_e pgpSigType
5.2.1.
pgpDig pgpNewDig(void)
Create a container for parsed OpenPGP packet(s).
enum pgpArmor_e pgpArmor
struct pgpPktKeyV4_s * pgpPktKeyV4
The version 4 format is similar to the version 3 format except for the absence of a validity period.
struct pgpPktSigV3_s * pgpPktSigV3
5.2.2.
pgpCompressAlgo_e
9.3.
Definition: rpmpgp.h:234
pgpDig pgpFreeDig(pgpDig dig)
Destroy a container for parsed OpenPGP packet(s).
int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen)
Return a length of the first public key certificate in a buffer given by pkts that contains one or mo...
struct pgpPktTrust_s pgpPktTrust
5.10.
pgpPubkeyAlgo_e
9.1.
Definition: rpmpgp.h:167
rpmDigestFlags_e
Bit(s) to control digest operation.
Definition: rpmpgp.h:962
DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags)
Initialize digest.
int rpmDigestBundleAdd(rpmDigestBundle bundle, int algo, rpmDigestFlags flags)
Add a new type of digest to a bundle.
struct pgpPktKeyV3_s * pgpPktKeyV3
5.5.1.
void pgpCleanDig(pgpDig dig)
Release (malloc'd) data from container.
struct pgpPktOnepass_s * pgpPktOnepass
5.4.
int rpmDigestFinal(DIGEST_CTX ctx, void **datap, size_t *lenp, int asAscii)
Return digest and destroy context.
pgpArmor pgpParsePkts(const char *armor, uint8_t **pkt, size_t *pktlen)
Parse armored OpenPGP packets from memory.
pgpArmor pgpReadPkts(const char *fn, uint8_t **pkt, size_t *pktlen)
Parse armored OpenPGP packets from a file.
const char * pgpValString(pgpValType type, uint8_t val)
Return string representation of am OpenPGP value.
char * pgpHexStr(const uint8_t *p, size_t plen)
Return hex formatted representation of bytes.
struct pgpPktCdata_s pgpPktCdata
5.6.
pgpCurveId_e
ECC Curves.
Definition: rpmpgp.h:283
rpmDigestBundle rpmDigestBundleNew(void)
Create a new digest bundle.
enum pgpCompressAlgo_e pgpCompressAlgo
9.3.
pgpArmor_e
Definition: rpmpgp.h:917
int rpmDigestBundleFinal(rpmDigestBundle bundle, int id, void **datap, size_t *lenp, int asAscii)
Return digest from a bundle and destroy context, see rpmDigestFinal().
DIGEST_CTX rpmDigestDup(DIGEST_CTX octx)
Duplicate a digest context.
union pgpPktKey_u pgpPktKey
5.5.3.
struct pgpDig_s * pgpDig
Definition: rpmpgp.h:34
pgpHashAlgo_e
9.4.
Definition: rpmpgp.h:264
pgpSigType_e
5.2.1.
Definition: rpmpgp.h:123
size_t rpmDigestLength(int hashalgo)
Obtain digest length in bytes.
int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2)
Compare OpenPGP packet parameters param p1 1st parameter container param p2 2nd parameter container r...
enum pgpArmorKey_e pgpArmorKey
struct pgpDigParams_s * pgpDigParams
Definition: rpmpgp.h:38
pgpArmorKey_e
Definition: rpmpgp.h:938
DIGEST_CTX rpmDigestBundleDupCtx(rpmDigestBundle bundle, int id)
Duplicate a digest context from a bundle.
union pgpPktSig_u * pgpPktSig
5.2.
unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype)
Retrieve OpenPGP algorithm parameters param digp parameter container param algotype PGPVAL_HASHALGO /...
enum pgpSymkeyAlgo_e pgpSymkeyAlgo
9.2.
struct pgpPktLdata_s pgpPktLdata
5.8.
pgpDigParams pgpDigParamsFree(pgpDigParams digp)
Destroy parsed OpenPGP packet parameter(s).
int pgpPubkeyKeyID(const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid)
Calculate OpenPGP public key Key ID.
pgpTag_e
4.3.
Definition: rpmpgp.h:50
int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing)
Print/parse a OpenPGP packet(s).
pgpSymkeyAlgo_e
9.2.
Definition: rpmpgp.h:204
enum pgpSubType_e pgpSubType
5.2.3.1.
int rpmDigestUpdate(DIGEST_CTX ctx, const void *data, size_t len)
Update context with next plain text buffer.
int rpmFreeCrypto(void)
Shutdown cryptography.
struct DIGEST_CTX_s * DIGEST_CTX
Definition: rpmpgp.h:29
struct pgpPktEdata_s pgpPktEdata
5.7.
char * pgpArmorWrap(int atype, const unsigned char *s, size_t ns)
Wrap a OpenPGP packets in ascii armor for transport.
int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id, rpmDigestFlags flags)
Add a new type of digest to a bundle.
int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len)
Update contexts within bundle with next plain text buffer.
pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype)
Retrieve parameters for parsed OpenPGP packet(s).
struct pgpPktUid_s pgpPktUid
5.11.
int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen, pgpDigParams mainkey, pgpDigParams **subkeys, int *subkeysCount)
Parse subkey parameters from OpenPGP packet(s).
char * pgpIdentItem(pgpDigParams digp)
Return a string identification of a PGP signature/pubkey.
rpmRC pgpVerifySig(pgpDig dig, DIGEST_CTX hashctx)
Verify a PGP signature.
static unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
Return (native-endian) integer from big-endian representation.
Definition: rpmpgp.h:983
int pgpPubkeyFingerprint(const uint8_t *pkt, size_t pktlen, uint8_t **fp, size_t *fplen)
Calculate OpenPGP public key fingerprint.
pgpSubType_e
5.2.3.1.
Definition: rpmpgp.h:420
struct pgpPktPubkey_s pgpPktPubkey
5.1.
struct pgpPktSigV4_s * pgpPktSigV4
5.2.3.
enum pgpCurveId_e pgpCurveId
ECC Curves.
@ PGPCOMPRESSALGO_NONE
Definition: rpmpgp.h:235
@ PGPCOMPRESSALGO_BZIP2
Definition: rpmpgp.h:238
@ PGPCOMPRESSALGO_ZLIB
Definition: rpmpgp.h:237
@ PGPCOMPRESSALGO_ZIP
Definition: rpmpgp.h:236
@ PGPPUBKEYALGO_ELGAMAL
Definition: rpmpgp.h:175
@ PGPPUBKEYALGO_EC
Definition: rpmpgp.h:173
@ PGPPUBKEYALGO_EDDSA
Definition: rpmpgp.h:177
@ PGPPUBKEYALGO_RSA_ENCRYPT
Definition: rpmpgp.h:169
@ PGPPUBKEYALGO_ELGAMAL_ENCRYPT
Definition: rpmpgp.h:171
@ PGPPUBKEYALGO_RSA
Definition: rpmpgp.h:168
@ PGPPUBKEYALGO_ECDSA
Definition: rpmpgp.h:174
@ PGPPUBKEYALGO_DH
Definition: rpmpgp.h:176
@ PGPPUBKEYALGO_RSA_SIGN
Definition: rpmpgp.h:170
@ PGPPUBKEYALGO_DSA
Definition: rpmpgp.h:172
@ RPMDIGEST_NONE
Definition: rpmpgp.h:963
@ PGPCURVE_ED25519
Definition: rpmpgp.h:289
@ PGPCURVE_NIST_P_384
Definition: rpmpgp.h:285
@ PGPCURVE_NIST_P_521
Definition: rpmpgp.h:286
@ PGPCURVE_BRAINPOOL_P256R1
Definition: rpmpgp.h:287
@ PGPCURVE_BRAINPOOL_P512R1
Definition: rpmpgp.h:288
@ PGPCURVE_NIST_P_256
Definition: rpmpgp.h:284
@ PGPCURVE_CURVE25519
Definition: rpmpgp.h:290
@ PGPARMOR_ERR_CRC_DECODE
Definition: rpmpgp.h:920
@ PGPARMOR_PRIVKEY
Definition: rpmpgp.h:932
@ PGPARMOR_MESSAGE
Definition: rpmpgp.h:927
@ PGPARMOR_PUBKEY
Definition: rpmpgp.h:928
@ PGPARMOR_ERR_BODY_DECODE
Definition: rpmpgp.h:919
@ PGPARMOR_SIGNED_MESSAGE
Definition: rpmpgp.h:930
@ PGPARMOR_SIGNATURE
Definition: rpmpgp.h:929
@ PGPARMOR_FILE
Definition: rpmpgp.h:931
@ PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE
Definition: rpmpgp.h:923
@ PGPARMOR_ERR_NO_BEGIN_PGP
Definition: rpmpgp.h:924
@ PGPARMOR_NONE
Definition: rpmpgp.h:926
@ PGPARMOR_ERR_NO_END_PGP
Definition: rpmpgp.h:921
@ PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG
Definition: rpmpgp.h:922
@ PGPARMOR_SECKEY
Definition: rpmpgp.h:933
@ PGPARMOR_ERR_CRC_CHECK
Definition: rpmpgp.h:918
@ PGPHASHALGO_SHA384
Definition: rpmpgp.h:272
@ PGPHASHALGO_SHA256
Definition: rpmpgp.h:271
@ PGPHASHALGO_HAVAL_5_160
Definition: rpmpgp.h:270
@ PGPHASHALGO_MD2
Definition: rpmpgp.h:268
@ PGPHASHALGO_RIPEMD160
Definition: rpmpgp.h:267
@ PGPHASHALGO_TIGER192
Definition: rpmpgp.h:269
@ PGPHASHALGO_SHA512
Definition: rpmpgp.h:273
@ PGPHASHALGO_MD5
Definition: rpmpgp.h:265
@ PGPHASHALGO_SHA224
Definition: rpmpgp.h:274
@ PGPHASHALGO_SHA1
Definition: rpmpgp.h:266
@ PGPSIGTYPE_CASUAL_CERT
Definition: rpmpgp.h:131
@ PGPSIGTYPE_STANDALONE
Definition: rpmpgp.h:126
@ PGPSIGTYPE_GENERIC_CERT
Definition: rpmpgp.h:127
@ PGPSIGTYPE_SUBKEY_BINDING
Definition: rpmpgp.h:135
@ PGPSIGTYPE_KEY_REVOKE
Definition: rpmpgp.h:137
@ PGPSIGTYPE_PERSONA_CERT
Definition: rpmpgp.h:129
@ PGPSIGTYPE_SIGNED_KEY
Definition: rpmpgp.h:136
@ PGPSIGTYPE_SUBKEY_REVOKE
Definition: rpmpgp.h:138
@ PGPSIGTYPE_TEXT
Definition: rpmpgp.h:125
@ PGPSIGTYPE_CERT_REVOKE
Definition: rpmpgp.h:139
@ PGPSIGTYPE_BINARY
Definition: rpmpgp.h:124
@ PGPSIGTYPE_TIMESTAMP
Definition: rpmpgp.h:140
@ PGPSIGTYPE_POSITIVE_CERT
Definition: rpmpgp.h:133
@ PGPARMORKEY_COMMENT
Definition: rpmpgp.h:940
@ PGPARMORKEY_MESSAGEID
Definition: rpmpgp.h:941
@ PGPARMORKEY_HASH
Definition: rpmpgp.h:942
@ PGPARMORKEY_CHARSET
Definition: rpmpgp.h:943
@ PGPARMORKEY_VERSION
Definition: rpmpgp.h:939
@ PGPTAG_COMPRESSED_DATA
Definition: rpmpgp.h:59
@ PGPTAG_PRIVATE_60
Definition: rpmpgp.h:70
@ PGPTAG_MARKER
Definition: rpmpgp.h:61
@ PGPTAG_SYMMETRIC_DATA
Definition: rpmpgp.h:60
@ PGPTAG_USER_ID
Definition: rpmpgp.h:64
@ PGPTAG_ENCRYPTED_MDC
Definition: rpmpgp.h:68
@ PGPTAG_SECRET_SUBKEY
Definition: rpmpgp.h:58
@ PGPTAG_PRIVATE_62
Definition: rpmpgp.h:72
@ PGPTAG_ONEPASS_SIGNATURE
Definition: rpmpgp.h:55
@ PGPTAG_TRUST
Definition: rpmpgp.h:63
@ PGPTAG_PUBLIC_KEY
Definition: rpmpgp.h:57
@ PGPTAG_RESERVED
Definition: rpmpgp.h:51
@ PGPTAG_COMMENT_OLD
Definition: rpmpgp.h:66
@ PGPTAG_PHOTOID
Definition: rpmpgp.h:67
@ PGPTAG_LITERAL_DATA
Definition: rpmpgp.h:62
@ PGPTAG_SIGNATURE
Definition: rpmpgp.h:53
@ PGPTAG_PUBLIC_SESSION_KEY
Definition: rpmpgp.h:52
@ PGPTAG_SYMMETRIC_SESSION_KEY
Definition: rpmpgp.h:54
@ PGPTAG_COMMENT
Definition: rpmpgp.h:71
@ PGPTAG_SECRET_KEY
Definition: rpmpgp.h:56
@ PGPTAG_PUBLIC_SUBKEY
Definition: rpmpgp.h:65
@ PGPTAG_MDC
Definition: rpmpgp.h:69
@ PGPTAG_CONTROL
Definition: rpmpgp.h:73
@ PGPSYMKEYALGO_DES_SK
Definition: rpmpgp.h:211
@ PGPSYMKEYALGO_BLOWFISH
Definition: rpmpgp.h:209
@ PGPSYMKEYALGO_PLAINTEXT
Definition: rpmpgp.h:205
@ PGPSYMKEYALGO_AES_192
Definition: rpmpgp.h:213
@ PGPSYMKEYALGO_NOENCRYPT
Definition: rpmpgp.h:216
@ PGPSYMKEYALGO_AES_256
Definition: rpmpgp.h:214
@ PGPSYMKEYALGO_TWOFISH
Definition: rpmpgp.h:215
@ PGPSYMKEYALGO_TRIPLE_DES
Definition: rpmpgp.h:207
@ PGPSYMKEYALGO_CAST5
Definition: rpmpgp.h:208
@ PGPSYMKEYALGO_SAFER
Definition: rpmpgp.h:210
@ PGPSYMKEYALGO_IDEA
Definition: rpmpgp.h:206
@ PGPSYMKEYALGO_AES_128
Definition: rpmpgp.h:212
@ PGPSUBTYPE_EMBEDDED_SIG
Definition: rpmpgp.h:444
@ PGPSUBTYPE_EXPORTABLE_CERT
Definition: rpmpgp.h:424
@ PGPSUBTYPE_ARR
Definition: rpmpgp.h:429
@ PGPSUBTYPE_NOTATION
Definition: rpmpgp.h:433
@ PGPSUBTYPE_ISSUER_KEYID
Definition: rpmpgp.h:432
@ PGPSUBTYPE_REVOCABLE
Definition: rpmpgp.h:427
@ PGPSUBTYPE_POLICY_URL
Definition: rpmpgp.h:439
@ PGPSUBTYPE_FEATURES
Definition: rpmpgp.h:443
@ PGPSUBTYPE_TRUST_SIG
Definition: rpmpgp.h:425
@ PGPSUBTYPE_PREFER_SYMKEY
Definition: rpmpgp.h:430
@ PGPSUBTYPE_SIG_EXPIRE_TIME
Definition: rpmpgp.h:423
@ PGPSUBTYPE_INTERNAL_104
Definition: rpmpgp.h:450
@ PGPSUBTYPE_SIGNER_USERID
Definition: rpmpgp.h:441
@ PGPSUBTYPE_PREFER_COMPRESS
Definition: rpmpgp.h:435
@ PGPSUBTYPE_KEY_EXPIRE_TIME
Definition: rpmpgp.h:428
@ PGPSUBTYPE_REVOKE_KEY
Definition: rpmpgp.h:431
@ PGPSUBTYPE_INTERNAL_101
Definition: rpmpgp.h:447
@ PGPSUBTYPE_PREFER_HASH
Definition: rpmpgp.h:434
@ PGPSUBTYPE_NONE
Definition: rpmpgp.h:421
@ PGPSUBTYPE_SIG_CREATE_TIME
Definition: rpmpgp.h:422
@ PGPSUBTYPE_REVOKE_REASON
Definition: rpmpgp.h:442
@ PGPSUBTYPE_KEYSERVER_PREFERS
Definition: rpmpgp.h:436
@ PGPSUBTYPE_CRITICAL
Definition: rpmpgp.h:458
@ PGPSUBTYPE_INTERNAL_110
Definition: rpmpgp.h:456
@ PGPSUBTYPE_INTERNAL_109
Definition: rpmpgp.h:455
@ PGPSUBTYPE_INTERNAL_108
Definition: rpmpgp.h:454
@ PGPSUBTYPE_INTERNAL_105
Definition: rpmpgp.h:451
@ PGPSUBTYPE_INTERNAL_100
Definition: rpmpgp.h:446
@ PGPSUBTYPE_PREFER_KEYSERVER
Definition: rpmpgp.h:437
@ PGPSUBTYPE_INTERNAL_107
Definition: rpmpgp.h:453
@ PGPSUBTYPE_REGEX
Definition: rpmpgp.h:426
@ PGPSUBTYPE_PRIMARY_USERID
Definition: rpmpgp.h:438
@ PGPSUBTYPE_INTERNAL_102
Definition: rpmpgp.h:448
@ PGPSUBTYPE_INTERNAL_103
Definition: rpmpgp.h:449
@ PGPSUBTYPE_INTERNAL_106
Definition: rpmpgp.h:452
@ PGPSUBTYPE_KEY_FLAGS
Definition: rpmpgp.h:440
uint32_t rpmFlags
Definition: rpmtypes.h:42
enum rpmRC_e rpmRC
Package read return codes.
pgpValType_e
Definition: rpmpgp.h:946
@ PGPVAL_SUBTYPE
Definition: rpmpgp.h:951
@ PGPVAL_ARMORKEY
Definition: rpmpgp.h:949
@ PGPVAL_COMPRESSALGO
Definition: rpmpgp.h:954
@ PGPVAL_SERVERPREFS
Definition: rpmpgp.h:956
@ PGPVAL_TAG
Definition: rpmpgp.h:947
@ PGPVAL_HASHALGO
Definition: rpmpgp.h:955
@ PGPVAL_SIGTYPE
Definition: rpmpgp.h:950
@ PGPVAL_PUBKEYALGO
Definition: rpmpgp.h:952
@ PGPVAL_ARMORBLOCK
Definition: rpmpgp.h:948
@ PGPVAL_SYMKEYALGO
Definition: rpmpgp.h:953
rpmFlags rpmDigestFlags
Definition: rpmpgp.h:966
uint8_t pgpTime_t[4]
Definition: rpmpgp.h:41
enum pgpValType_e pgpValType
struct rpmDigestBundle_s * rpmDigestBundle
Definition: rpmpgp.h:30
struct pgpPktSymkey_s pgpPktSymkey
5.3.
uint8_t pgpKeyID_t[8]
Definition: rpmpgp.h:40
uint8_t compressalgo
Definition: rpmpgp.h:773
uint8_t data[1]
Definition: rpmpgp.h:774
uint8_t data[1]
Definition: rpmpgp.h:812
5.5.1.
Definition: rpmpgp.h:630
uint8_t version
Definition: rpmpgp.h:631
uint8_t pubkey_algo
Definition: rpmpgp.h:634
pgpTime_t time
Definition: rpmpgp.h:632
uint8_t valid[2]
Definition: rpmpgp.h:633
The version 4 format is similar to the version 3 format except for the absence of a validity period.
Definition: rpmpgp.h:673
uint8_t pubkey_algo
Definition: rpmpgp.h:676
pgpTime_t time
Definition: rpmpgp.h:675
uint8_t version
Definition: rpmpgp.h:674
uint8_t filenamelen
Definition: rpmpgp.h:864
uint8_t filename[1]
Definition: rpmpgp.h:865
uint8_t format
Definition: rpmpgp.h:863
uint8_t sigtype
Definition: rpmpgp.h:551
uint8_t pubkey_algo
Definition: rpmpgp.h:553
pgpKeyID_t signid
Definition: rpmpgp.h:554
uint8_t version
Definition: rpmpgp.h:550
uint8_t hash_algo
Definition: rpmpgp.h:552
uint8_t nested
Definition: rpmpgp.h:555
uint8_t algo
Definition: rpmpgp.h:113
uint8_t version
Definition: rpmpgp.h:111
pgpKeyID_t keyid
Definition: rpmpgp.h:112
5.2.2.
Definition: rpmpgp.h:314
uint8_t version
Definition: rpmpgp.h:315
pgpTime_t time
Definition: rpmpgp.h:318
pgpKeyID_t signid
Definition: rpmpgp.h:319
uint8_t signhash16[2]
Definition: rpmpgp.h:322
uint8_t sigtype
Definition: rpmpgp.h:317
uint8_t hashlen
Definition: rpmpgp.h:316
uint8_t pubkey_algo
Definition: rpmpgp.h:320
uint8_t hash_algo
Definition: rpmpgp.h:321
5.2.3.
Definition: rpmpgp.h:346
uint8_t hash_algo
Definition: rpmpgp.h:350
uint8_t version
Definition: rpmpgp.h:347
uint8_t hashlen[2]
Definition: rpmpgp.h:351
uint8_t sigtype
Definition: rpmpgp.h:348
uint8_t pubkey_algo
Definition: rpmpgp.h:349
uint8_t version
Definition: rpmpgp.h:515
uint8_t s2k[1]
Definition: rpmpgp.h:517
uint8_t symkey_algo
Definition: rpmpgp.h:516
5.10.
Definition: rpmpgp.h:881
uint8_t flag
Definition: rpmpgp.h:882
5.11.
Definition: rpmpgp.h:895
uint8_t userid[1]
Definition: rpmpgp.h:896
5.5.3.
Definition: rpmpgp.h:743
struct pgpPktKeyV3_s v3
Definition: rpmpgp.h:744
struct pgpPktKeyV4_s v4
Definition: rpmpgp.h:745
pgpPktSymkey symkey
Definition: rpmpgp.h:904
pgpPktTrust tdata
Definition: rpmpgp.h:911
pgpPktPubkey pubkey
Definition: rpmpgp.h:902
pgpPktUid uid
Definition: rpmpgp.h:912
pgpPktCdata cdata
Definition: rpmpgp.h:907
pgpPktSig sig
Definition: rpmpgp.h:903
pgpPktOnepass onepass
Definition: rpmpgp.h:905
pgpPktEdata edata
Definition: rpmpgp.h:908
pgpPktLdata ldata
Definition: rpmpgp.h:910
pgpPktKey key
Definition: rpmpgp.h:906
5.2.
Definition: rpmpgp.h:481
struct pgpPktSigV4_s v4
Definition: rpmpgp.h:483
struct pgpPktSigV3_s v3
Definition: rpmpgp.h:482