rpmpgp.h
Go to the documentation of this file.
#ifndef H_RPMPGP
#define H_RPMPGP
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmstring.h>
#include <rpm/rpmcrypto.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct pgpDig_s * pgpDig;
typedef struct pgpDigParams_s * pgpDigParams;
#define PGP_KEYID_LEN 8
typedef uint8_t pgpKeyID_t[PGP_KEYID_LEN];
typedef uint8_t pgpTime_t[4];
typedef enum pgpTag_e {
PGPTAG_RESERVED = 0,
PGPTAG_PUBLIC_SESSION_KEY = 1,
PGPTAG_SIGNATURE = 2,
PGPTAG_SYMMETRIC_SESSION_KEY= 3,
PGPTAG_ONEPASS_SIGNATURE = 4,
PGPTAG_SECRET_KEY = 5,
PGPTAG_PUBLIC_KEY = 6,
PGPTAG_SECRET_SUBKEY = 7,
PGPTAG_COMPRESSED_DATA = 8,
PGPTAG_SYMMETRIC_DATA = 9,
PGPTAG_MARKER = 10,
PGPTAG_LITERAL_DATA = 11,
PGPTAG_TRUST = 12,
PGPTAG_USER_ID = 13,
PGPTAG_PUBLIC_SUBKEY = 14,
PGPTAG_COMMENT_OLD = 16,
PGPTAG_PHOTOID = 17,
PGPTAG_ENCRYPTED_MDC = 18,
PGPTAG_MDC = 19,
PGPTAG_PRIVATE_60 = 60,
PGPTAG_COMMENT = 61,
PGPTAG_PRIVATE_62 = 62,
PGPTAG_CONTROL = 63
} pgpTag;
typedef struct pgpPktPubkey_s {
uint8_t version;
pgpKeyID_t keyid;
uint8_t algo;
} pgpPktPubkey;
typedef enum pgpSigType_e {
PGPSIGTYPE_BINARY = 0x00,
PGPSIGTYPE_TEXT = 0x01,
PGPSIGTYPE_STANDALONE = 0x02,
PGPSIGTYPE_GENERIC_CERT = 0x10,
PGPSIGTYPE_PERSONA_CERT = 0x11,
PGPSIGTYPE_CASUAL_CERT = 0x12,
PGPSIGTYPE_POSITIVE_CERT = 0x13,
PGPSIGTYPE_SUBKEY_BINDING = 0x18,
PGPSIGTYPE_SIGNED_KEY = 0x1F,
PGPSIGTYPE_KEY_REVOKE = 0x20,
PGPSIGTYPE_SUBKEY_REVOKE = 0x28,
PGPSIGTYPE_CERT_REVOKE = 0x30,
PGPSIGTYPE_TIMESTAMP = 0x40
} pgpSigType;
typedef enum pgpPubkeyAlgo_e {
PGPPUBKEYALGO_RSA = 1,
PGPPUBKEYALGO_RSA_ENCRYPT = 2,
PGPPUBKEYALGO_RSA_SIGN = 3,
PGPPUBKEYALGO_ELGAMAL_ENCRYPT = 16,
PGPPUBKEYALGO_DSA = 17,
PGPPUBKEYALGO_EC = 18,
PGPPUBKEYALGO_ECDSA = 19,
PGPPUBKEYALGO_ELGAMAL = 20,
PGPPUBKEYALGO_DH = 21,
PGPPUBKEYALGO_EDDSA = 22
} pgpPubkeyAlgo;
typedef enum pgpSymkeyAlgo_e {
PGPSYMKEYALGO_PLAINTEXT = 0,
PGPSYMKEYALGO_IDEA = 1,
PGPSYMKEYALGO_TRIPLE_DES = 2,
PGPSYMKEYALGO_CAST5 = 3,
PGPSYMKEYALGO_BLOWFISH = 4,
PGPSYMKEYALGO_SAFER = 5,
PGPSYMKEYALGO_DES_SK = 6,
PGPSYMKEYALGO_AES_128 = 7,
PGPSYMKEYALGO_AES_192 = 8,
PGPSYMKEYALGO_AES_256 = 9,
PGPSYMKEYALGO_TWOFISH = 10,
PGPSYMKEYALGO_NOENCRYPT = 110
} pgpSymkeyAlgo;
typedef enum pgpCompressAlgo_e {
PGPCOMPRESSALGO_NONE = 0,
PGPCOMPRESSALGO_ZIP = 1,
PGPCOMPRESSALGO_ZLIB = 2,
PGPCOMPRESSALGO_BZIP2 = 3
} pgpCompressAlgo;
typedef enum pgpHashAlgo_e {
PGPHASHALGO_MD5 = 1,
PGPHASHALGO_SHA1 = 2,
PGPHASHALGO_RIPEMD160 = 3,
PGPHASHALGO_MD2 = 5,
PGPHASHALGO_TIGER192 = 6,
PGPHASHALGO_HAVAL_5_160 = 7,
PGPHASHALGO_SHA256 = 8,
PGPHASHALGO_SHA384 = 9,
PGPHASHALGO_SHA512 = 10,
PGPHASHALGO_SHA224 = 11,
} pgpHashAlgo;
typedef enum pgpCurveId_e {
PGPCURVE_NIST_P_256 = 1,
PGPCURVE_NIST_P_384 = 2,
PGPCURVE_NIST_P_521 = 3,
PGPCURVE_BRAINPOOL_P256R1 = 4,
PGPCURVE_BRAINPOOL_P512R1 = 5,
PGPCURVE_ED25519 = 6,
PGPCURVE_CURVE25519 = 7,
} pgpCurveId;
typedef struct pgpPktSigV3_s {
uint8_t version;
uint8_t hashlen;
uint8_t sigtype;
pgpTime_t time;
pgpKeyID_t signid;
uint8_t pubkey_algo;
uint8_t hash_algo;
uint8_t signhash16[2];
} * pgpPktSigV3;
typedef struct pgpPktSigV4_s {
uint8_t version;
uint8_t sigtype;
uint8_t pubkey_algo;
uint8_t hash_algo;
uint8_t hashlen[2];
} * pgpPktSigV4;
typedef enum pgpSubType_e {
PGPSUBTYPE_NONE = 0,
PGPSUBTYPE_SIG_CREATE_TIME = 2,
PGPSUBTYPE_SIG_EXPIRE_TIME = 3,
PGPSUBTYPE_EXPORTABLE_CERT = 4,
PGPSUBTYPE_TRUST_SIG = 5,
PGPSUBTYPE_REGEX = 6,
PGPSUBTYPE_REVOCABLE = 7,
PGPSUBTYPE_KEY_EXPIRE_TIME = 9,
PGPSUBTYPE_ARR = 10,
PGPSUBTYPE_PREFER_SYMKEY = 11,
PGPSUBTYPE_REVOKE_KEY = 12,
PGPSUBTYPE_ISSUER_KEYID = 16,
PGPSUBTYPE_NOTATION = 20,
PGPSUBTYPE_PREFER_HASH = 21,
PGPSUBTYPE_PREFER_COMPRESS = 22,
PGPSUBTYPE_KEYSERVER_PREFERS= 23,
PGPSUBTYPE_PREFER_KEYSERVER = 24,
PGPSUBTYPE_PRIMARY_USERID = 25,
PGPSUBTYPE_POLICY_URL = 26,
PGPSUBTYPE_KEY_FLAGS = 27,
PGPSUBTYPE_SIGNER_USERID = 28,
PGPSUBTYPE_REVOKE_REASON = 29,
PGPSUBTYPE_FEATURES = 30,
PGPSUBTYPE_EMBEDDED_SIG = 32,
PGPSUBTYPE_INTERNAL_100 = 100,
PGPSUBTYPE_INTERNAL_101 = 101,
PGPSUBTYPE_INTERNAL_102 = 102,
PGPSUBTYPE_INTERNAL_103 = 103,
PGPSUBTYPE_INTERNAL_104 = 104,
PGPSUBTYPE_INTERNAL_105 = 105,
PGPSUBTYPE_INTERNAL_106 = 106,
PGPSUBTYPE_INTERNAL_107 = 107,
PGPSUBTYPE_INTERNAL_108 = 108,
PGPSUBTYPE_INTERNAL_109 = 109,
PGPSUBTYPE_INTERNAL_110 = 110,
PGPSUBTYPE_CRITICAL = 128
} pgpSubType;
typedef union pgpPktSig_u {
struct pgpPktSigV3_s v3;
struct pgpPktSigV4_s v4;
} * pgpPktSig;
typedef struct pgpPktSymkey_s {
uint8_t version;
uint8_t symkey_algo;
uint8_t s2k[1];
} pgpPktSymkey;
typedef struct pgpPktOnepass_s {
uint8_t version;
uint8_t sigtype;
uint8_t hash_algo;
uint8_t pubkey_algo;
pgpKeyID_t signid;
uint8_t nested;
} * pgpPktOnepass;
typedef struct pgpPktKeyV3_s {
uint8_t version;
pgpTime_t time;
uint8_t valid[2];
uint8_t pubkey_algo;
} * pgpPktKeyV3;
typedef struct pgpPktKeyV4_s {
uint8_t version;
pgpTime_t time;
uint8_t pubkey_algo;
} * pgpPktKeyV4;
typedef union pgpPktKey_u {
struct pgpPktKeyV3_s v3;
struct pgpPktKeyV4_s v4;
} pgpPktKey;
typedef struct pgpPktCdata_s {
uint8_t compressalgo;
uint8_t data[1];
} pgpPktCdata;
typedef struct pgpPktEdata_s {
uint8_t data[1];
} pgpPktEdata;
typedef struct pgpPktLdata_s {
uint8_t format;
uint8_t filenamelen;
uint8_t filename[1];
} pgpPktLdata;
typedef struct pgpPktTrust_s {
uint8_t flag;
} pgpPktTrust;
typedef struct pgpPktUid_s {
uint8_t userid[1];
} pgpPktUid;
union pgpPktPre_u {
pgpPktPubkey pubkey;
pgpPktSig sig;
pgpPktSymkey symkey;
pgpPktOnepass onepass;
pgpPktKey key;
pgpPktCdata cdata;
pgpPktEdata edata;
pgpPktLdata ldata;
pgpPktTrust tdata;
pgpPktUid uid;
};
typedef enum pgpArmor_e {
PGPARMOR_ERR_CRC_CHECK = -7,
PGPARMOR_ERR_BODY_DECODE = -6,
PGPARMOR_ERR_CRC_DECODE = -5,
PGPARMOR_ERR_NO_END_PGP = -4,
PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG = -3,
PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE = -2,
PGPARMOR_ERR_NO_BEGIN_PGP = -1,
#define PGPARMOR_ERROR PGPARMOR_ERR_NO_BEGIN_PGP
PGPARMOR_NONE = 0,
PGPARMOR_MESSAGE = 1,
PGPARMOR_PUBKEY = 2,
PGPARMOR_SIGNATURE = 3,
PGPARMOR_SIGNED_MESSAGE = 4,
PGPARMOR_FILE = 5,
PGPARMOR_PRIVKEY = 6,
PGPARMOR_SECKEY = 7
} pgpArmor;
typedef enum pgpArmorKey_e {
PGPARMORKEY_VERSION = 1,
PGPARMORKEY_COMMENT = 2,
PGPARMORKEY_MESSAGEID = 3,
PGPARMORKEY_HASH = 4,
PGPARMORKEY_CHARSET = 5
} pgpArmorKey;
typedef enum pgpValType_e {
PGPVAL_TAG = 1,
PGPVAL_ARMORBLOCK = 2,
PGPVAL_ARMORKEY = 3,
PGPVAL_SIGTYPE = 4,
PGPVAL_SUBTYPE = 5,
PGPVAL_PUBKEYALGO = 6,
PGPVAL_SYMKEYALGO = 7,
PGPVAL_COMPRESSALGO = 8,
PGPVAL_HASHALGO = 9,
PGPVAL_SERVERPREFS = 10,
} pgpValType;
const char * pgpValString(pgpValType type, uint8_t val);
static inline
unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
{
size_t i = 0;
size_t nb = (nbytes <= sizeof(i) ? nbytes : sizeof(i));
while (nb--)
i = (i << 8) | *s++;
return i;
}
int pgpPubkeyFingerprint(const uint8_t * pkt, size_t pktlen,
uint8_t **fp, size_t *fplen);
int pgpPubkeyKeyID(const uint8_t * pkt, size_t pktlen, pgpKeyID_t keyid);
int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype,
pgpDigParams * ret);
int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
pgpDigParams mainkey, pgpDigParams **subkeys,
int *subkeysCount);
int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing);
pgpArmor pgpReadPkts(const char * fn, uint8_t ** pkt, size_t * pktlen);
pgpArmor pgpParsePkts(const char *armor, uint8_t ** pkt, size_t * pktlen);
int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen);
rpmRC pgpPubKeyLint(const uint8_t *pkts, size_t pktslen, char **explanation);
char * pgpArmorWrap(int atype, const unsigned char * s, size_t ns);
pgpDig pgpNewDig(void);
void pgpCleanDig(pgpDig dig);
pgpDig pgpFreeDig(pgpDig dig);
pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype);
int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2);
unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype);
const uint8_t *pgpDigParamsSignID(pgpDigParams digp);
const char *pgpDigParamsUserID(pgpDigParams digp);
int pgpDigParamsVersion(pgpDigParams digp);
uint32_t pgpDigParamsCreationTime(pgpDigParams digp);
pgpDigParams pgpDigParamsFree(pgpDigParams digp);
rpmRC pgpVerifySignature(pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx);
rpmRC pgpVerifySig(pgpDig dig, DIGEST_CTX hashctx);
int pgpSignatureType(pgpDigParams sig);
char *pgpIdentItem(pgpDigParams digp);
#ifdef __cplusplus
}
#endif
#endif /* H_RPMPGP */
DIGEST_CTX
struct DIGEST_CTX_s * DIGEST_CTX
Definition: rpmcrypto.h:12
pgpTag
enum pgpTag_e pgpTag
4.3.
pgpHashAlgo
enum pgpHashAlgo_e pgpHashAlgo
9.4.
pgpVerifySignature
rpmRC pgpVerifySignature(pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx)
Verify a PGP signature.
pgpPrtParams
int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype, pgpDigParams *ret)
Parse a OpenPGP packet(s).
pgpPubkeyAlgo
enum pgpPubkeyAlgo_e pgpPubkeyAlgo
9.1.
pgpSigType
enum pgpSigType_e pgpSigType
5.2.1.
pgpNewDig
pgpDig pgpNewDig(void)
Create a container for parsed OpenPGP packet(s).
pgpArmor
enum pgpArmor_e pgpArmor
pgpPktKeyV4
struct pgpPktKeyV4_s * pgpPktKeyV4
The version 4 format is similar to the version 3 format except for the absence of a validity period.
pgpPktSigV3
struct pgpPktSigV3_s * pgpPktSigV3
5.2.2.
pgpCompressAlgo_e
pgpCompressAlgo_e
9.3.
Definition: rpmpgp.h:236
pgpDigParamsCreationTime
uint32_t pgpDigParamsCreationTime(pgpDigParams digp)
Retrieve the object's creation time.
pgpFreeDig
pgpDig pgpFreeDig(pgpDig dig)
Destroy a container for parsed OpenPGP packet(s).
pgpPubKeyCertLen
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...
pgpSignatureType
int pgpSignatureType(pgpDigParams sig)
Return the type of a PGP signature.
pgpPktTrust
struct pgpPktTrust_s pgpPktTrust
5.10.
pgpPubkeyAlgo_e
pgpPubkeyAlgo_e
9.1.
Definition: rpmpgp.h:169
pgpPktKeyV3
struct pgpPktKeyV3_s * pgpPktKeyV3
5.5.1.
pgpCleanDig
void pgpCleanDig(pgpDig dig)
Release (malloc'd) data from container.
pgpDigParamsVersion
int pgpDigParamsVersion(pgpDigParams digp)
Retrieve the object's version.
pgpPktOnepass
struct pgpPktOnepass_s * pgpPktOnepass
5.4.
pgpParsePkts
pgpArmor pgpParsePkts(const char *armor, uint8_t **pkt, size_t *pktlen)
Parse armored OpenPGP packets from memory.
pgpDigParamsUserID
const char * pgpDigParamsUserID(pgpDigParams digp)
Retrieve the primary User ID, if any.
pgpReadPkts
pgpArmor pgpReadPkts(const char *fn, uint8_t **pkt, size_t *pktlen)
Parse armored OpenPGP packets from a file.
pgpValString
const char * pgpValString(pgpValType type, uint8_t val)
Return string representation of am OpenPGP value.
pgpPktCdata
struct pgpPktCdata_s pgpPktCdata
5.6.
pgpPubKeyLint
rpmRC pgpPubKeyLint(const uint8_t *pkts, size_t pktslen, char **explanation)
Lints the certificate.
pgpCurveId_e
pgpCurveId_e
ECC Curves.
Definition: rpmpgp.h:285
pgpCompressAlgo
enum pgpCompressAlgo_e pgpCompressAlgo
9.3.
pgpArmor_e
pgpArmor_e
Definition: rpmpgp.h:919
pgpPktKey
union pgpPktKey_u pgpPktKey
5.5.3.
pgpDig
struct pgpDig_s * pgpDig
Definition: rpmpgp.h:30
pgpHashAlgo_e
pgpHashAlgo_e
9.4.
Definition: rpmpgp.h:266
pgpSigType_e
pgpSigType_e
5.2.1.
Definition: rpmpgp.h:125
pgpDigParamsCmp
int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2)
Compare OpenPGP packet parameters param p1 1st parameter container param p2 2nd parameter container r...
pgpArmorKey
enum pgpArmorKey_e pgpArmorKey
pgpDigParams
struct pgpDigParams_s * pgpDigParams
Definition: rpmpgp.h:34
pgpDigParamsSignID
const uint8_t * pgpDigParamsSignID(pgpDigParams digp)
Returns the issuer or the object's Key ID.
pgpArmorKey_e
pgpArmorKey_e
Definition: rpmpgp.h:940
pgpPktSig
union pgpPktSig_u * pgpPktSig
5.2.
pgpDigParamsAlgo
unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype)
Retrieve OpenPGP algorithm parameters param digp parameter container param algotype PGPVAL_HASHALGO /...
PGP_KEYID_LEN
#define PGP_KEYID_LEN
The length (in bytes) of a binary (not hex encoded) key ID.
Definition: rpmpgp.h:40
pgpSymkeyAlgo
enum pgpSymkeyAlgo_e pgpSymkeyAlgo
9.2.
pgpPktLdata
struct pgpPktLdata_s pgpPktLdata
5.8.
pgpDigParamsFree
pgpDigParams pgpDigParamsFree(pgpDigParams digp)
Destroy parsed OpenPGP packet parameter(s).
pgpPubkeyKeyID
int pgpPubkeyKeyID(const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid)
Calculate OpenPGP public key Key ID.
pgpTag_e
pgpTag_e
4.3.
Definition: rpmpgp.h:52
pgpPrtPkts
int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing)
Print/parse a OpenPGP packet(s).
pgpSymkeyAlgo_e
pgpSymkeyAlgo_e
9.2.
Definition: rpmpgp.h:206
pgpSubType
enum pgpSubType_e pgpSubType
5.2.3.1.
pgpPktEdata
struct pgpPktEdata_s pgpPktEdata
5.7.
pgpArmorWrap
char * pgpArmorWrap(int atype, const unsigned char *s, size_t ns)
Wrap a OpenPGP packets in ascii armor for transport.
pgpDigGetParams
pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype)
Retrieve parameters for parsed OpenPGP packet(s).
pgpPktUid
struct pgpPktUid_s pgpPktUid
5.11.
pgpPrtParamsSubkeys
int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen, pgpDigParams mainkey, pgpDigParams **subkeys, int *subkeysCount)
Parse subkey parameters from OpenPGP packet(s).
pgpIdentItem
char * pgpIdentItem(pgpDigParams digp)
Return a string identification of a PGP signature/pubkey.
pgpVerifySig
rpmRC pgpVerifySig(pgpDig dig, DIGEST_CTX hashctx)
Verify a PGP signature.
pgpGrab
static unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
Return (native-endian) integer from big-endian representation.
Definition: rpmpgp.h:976
pgpPubkeyFingerprint
int pgpPubkeyFingerprint(const uint8_t *pkt, size_t pktlen, uint8_t **fp, size_t *fplen)
Calculate OpenPGP public key fingerprint.
pgpSubType_e
pgpSubType_e
5.2.3.1.
Definition: rpmpgp.h:422
pgpPktPubkey
struct pgpPktPubkey_s pgpPktPubkey
5.1.
pgpPktSigV4
struct pgpPktSigV4_s * pgpPktSigV4
5.2.3.
pgpCurveId
enum pgpCurveId_e pgpCurveId
ECC Curves.
PGPCOMPRESSALGO_NONE
@ PGPCOMPRESSALGO_NONE
Definition: rpmpgp.h:237
PGPCOMPRESSALGO_BZIP2
@ PGPCOMPRESSALGO_BZIP2
Definition: rpmpgp.h:240
PGPCOMPRESSALGO_ZLIB
@ PGPCOMPRESSALGO_ZLIB
Definition: rpmpgp.h:239
PGPCOMPRESSALGO_ZIP
@ PGPCOMPRESSALGO_ZIP
Definition: rpmpgp.h:238
PGPPUBKEYALGO_ELGAMAL
@ PGPPUBKEYALGO_ELGAMAL
Definition: rpmpgp.h:177
PGPPUBKEYALGO_EC
@ PGPPUBKEYALGO_EC
Definition: rpmpgp.h:175
PGPPUBKEYALGO_EDDSA
@ PGPPUBKEYALGO_EDDSA
Definition: rpmpgp.h:179
PGPPUBKEYALGO_RSA_ENCRYPT
@ PGPPUBKEYALGO_RSA_ENCRYPT
Definition: rpmpgp.h:171
PGPPUBKEYALGO_ELGAMAL_ENCRYPT
@ PGPPUBKEYALGO_ELGAMAL_ENCRYPT
Definition: rpmpgp.h:173
PGPPUBKEYALGO_RSA
@ PGPPUBKEYALGO_RSA
Definition: rpmpgp.h:170
PGPPUBKEYALGO_ECDSA
@ PGPPUBKEYALGO_ECDSA
Definition: rpmpgp.h:176
PGPPUBKEYALGO_DH
@ PGPPUBKEYALGO_DH
Definition: rpmpgp.h:178
PGPPUBKEYALGO_RSA_SIGN
@ PGPPUBKEYALGO_RSA_SIGN
Definition: rpmpgp.h:172
PGPPUBKEYALGO_DSA
@ PGPPUBKEYALGO_DSA
Definition: rpmpgp.h:174
PGPCURVE_ED25519
@ PGPCURVE_ED25519
Definition: rpmpgp.h:291
PGPCURVE_NIST_P_384
@ PGPCURVE_NIST_P_384
Definition: rpmpgp.h:287
PGPCURVE_NIST_P_521
@ PGPCURVE_NIST_P_521
Definition: rpmpgp.h:288
PGPCURVE_BRAINPOOL_P256R1
@ PGPCURVE_BRAINPOOL_P256R1
Definition: rpmpgp.h:289
PGPCURVE_BRAINPOOL_P512R1
@ PGPCURVE_BRAINPOOL_P512R1
Definition: rpmpgp.h:290
PGPCURVE_NIST_P_256
@ PGPCURVE_NIST_P_256
Definition: rpmpgp.h:286
PGPCURVE_CURVE25519
@ PGPCURVE_CURVE25519
Definition: rpmpgp.h:292
PGPARMOR_ERR_CRC_DECODE
@ PGPARMOR_ERR_CRC_DECODE
Definition: rpmpgp.h:922
PGPARMOR_PRIVKEY
@ PGPARMOR_PRIVKEY
Definition: rpmpgp.h:934
PGPARMOR_MESSAGE
@ PGPARMOR_MESSAGE
Definition: rpmpgp.h:929
PGPARMOR_PUBKEY
@ PGPARMOR_PUBKEY
Definition: rpmpgp.h:930
PGPARMOR_ERR_BODY_DECODE
@ PGPARMOR_ERR_BODY_DECODE
Definition: rpmpgp.h:921
PGPARMOR_SIGNED_MESSAGE
@ PGPARMOR_SIGNED_MESSAGE
Definition: rpmpgp.h:932
PGPARMOR_SIGNATURE
@ PGPARMOR_SIGNATURE
Definition: rpmpgp.h:931
PGPARMOR_FILE
@ PGPARMOR_FILE
Definition: rpmpgp.h:933
PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE
@ PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE
Definition: rpmpgp.h:925
PGPARMOR_ERR_NO_BEGIN_PGP
@ PGPARMOR_ERR_NO_BEGIN_PGP
Definition: rpmpgp.h:926
PGPARMOR_NONE
@ PGPARMOR_NONE
Definition: rpmpgp.h:928
PGPARMOR_ERR_NO_END_PGP
@ PGPARMOR_ERR_NO_END_PGP
Definition: rpmpgp.h:923
PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG
@ PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG
Definition: rpmpgp.h:924
PGPARMOR_SECKEY
@ PGPARMOR_SECKEY
Definition: rpmpgp.h:935
PGPARMOR_ERR_CRC_CHECK
@ PGPARMOR_ERR_CRC_CHECK
Definition: rpmpgp.h:920
PGPHASHALGO_SHA384
@ PGPHASHALGO_SHA384
Definition: rpmpgp.h:274
PGPHASHALGO_SHA256
@ PGPHASHALGO_SHA256
Definition: rpmpgp.h:273
PGPHASHALGO_HAVAL_5_160
@ PGPHASHALGO_HAVAL_5_160
Definition: rpmpgp.h:272
PGPHASHALGO_MD2
@ PGPHASHALGO_MD2
Definition: rpmpgp.h:270
PGPHASHALGO_RIPEMD160
@ PGPHASHALGO_RIPEMD160
Definition: rpmpgp.h:269
PGPHASHALGO_TIGER192
@ PGPHASHALGO_TIGER192
Definition: rpmpgp.h:271
PGPHASHALGO_SHA512
@ PGPHASHALGO_SHA512
Definition: rpmpgp.h:275
PGPHASHALGO_MD5
@ PGPHASHALGO_MD5
Definition: rpmpgp.h:267
PGPHASHALGO_SHA224
@ PGPHASHALGO_SHA224
Definition: rpmpgp.h:276
PGPHASHALGO_SHA1
@ PGPHASHALGO_SHA1
Definition: rpmpgp.h:268
PGPSIGTYPE_CASUAL_CERT
@ PGPSIGTYPE_CASUAL_CERT
Definition: rpmpgp.h:133
PGPSIGTYPE_STANDALONE
@ PGPSIGTYPE_STANDALONE
Definition: rpmpgp.h:128
PGPSIGTYPE_GENERIC_CERT
@ PGPSIGTYPE_GENERIC_CERT
Definition: rpmpgp.h:129
PGPSIGTYPE_SUBKEY_BINDING
@ PGPSIGTYPE_SUBKEY_BINDING
Definition: rpmpgp.h:137
PGPSIGTYPE_KEY_REVOKE
@ PGPSIGTYPE_KEY_REVOKE
Definition: rpmpgp.h:139
PGPSIGTYPE_PERSONA_CERT
@ PGPSIGTYPE_PERSONA_CERT
Definition: rpmpgp.h:131
PGPSIGTYPE_SIGNED_KEY
@ PGPSIGTYPE_SIGNED_KEY
Definition: rpmpgp.h:138
PGPSIGTYPE_SUBKEY_REVOKE
@ PGPSIGTYPE_SUBKEY_REVOKE
Definition: rpmpgp.h:140
PGPSIGTYPE_TEXT
@ PGPSIGTYPE_TEXT
Definition: rpmpgp.h:127
PGPSIGTYPE_CERT_REVOKE
@ PGPSIGTYPE_CERT_REVOKE
Definition: rpmpgp.h:141
PGPSIGTYPE_BINARY
@ PGPSIGTYPE_BINARY
Definition: rpmpgp.h:126
PGPSIGTYPE_TIMESTAMP
@ PGPSIGTYPE_TIMESTAMP
Definition: rpmpgp.h:142
PGPSIGTYPE_POSITIVE_CERT
@ PGPSIGTYPE_POSITIVE_CERT
Definition: rpmpgp.h:135
PGPARMORKEY_COMMENT
@ PGPARMORKEY_COMMENT
Definition: rpmpgp.h:942
PGPARMORKEY_MESSAGEID
@ PGPARMORKEY_MESSAGEID
Definition: rpmpgp.h:943
PGPARMORKEY_HASH
@ PGPARMORKEY_HASH
Definition: rpmpgp.h:944
PGPARMORKEY_CHARSET
@ PGPARMORKEY_CHARSET
Definition: rpmpgp.h:945
PGPARMORKEY_VERSION
@ PGPARMORKEY_VERSION
Definition: rpmpgp.h:941
PGPTAG_COMPRESSED_DATA
@ PGPTAG_COMPRESSED_DATA
Definition: rpmpgp.h:61
PGPTAG_PRIVATE_60
@ PGPTAG_PRIVATE_60
Definition: rpmpgp.h:72
PGPTAG_MARKER
@ PGPTAG_MARKER
Definition: rpmpgp.h:63
PGPTAG_SYMMETRIC_DATA
@ PGPTAG_SYMMETRIC_DATA
Definition: rpmpgp.h:62
PGPTAG_USER_ID
@ PGPTAG_USER_ID
Definition: rpmpgp.h:66
PGPTAG_ENCRYPTED_MDC
@ PGPTAG_ENCRYPTED_MDC
Definition: rpmpgp.h:70
PGPTAG_SECRET_SUBKEY
@ PGPTAG_SECRET_SUBKEY
Definition: rpmpgp.h:60
PGPTAG_PRIVATE_62
@ PGPTAG_PRIVATE_62
Definition: rpmpgp.h:74
PGPTAG_ONEPASS_SIGNATURE
@ PGPTAG_ONEPASS_SIGNATURE
Definition: rpmpgp.h:57
PGPTAG_TRUST
@ PGPTAG_TRUST
Definition: rpmpgp.h:65
PGPTAG_PUBLIC_KEY
@ PGPTAG_PUBLIC_KEY
Definition: rpmpgp.h:59
PGPTAG_RESERVED
@ PGPTAG_RESERVED
Definition: rpmpgp.h:53
PGPTAG_COMMENT_OLD
@ PGPTAG_COMMENT_OLD
Definition: rpmpgp.h:68
PGPTAG_PHOTOID
@ PGPTAG_PHOTOID
Definition: rpmpgp.h:69
PGPTAG_LITERAL_DATA
@ PGPTAG_LITERAL_DATA
Definition: rpmpgp.h:64
PGPTAG_SIGNATURE
@ PGPTAG_SIGNATURE
Definition: rpmpgp.h:55
PGPTAG_PUBLIC_SESSION_KEY
@ PGPTAG_PUBLIC_SESSION_KEY
Definition: rpmpgp.h:54
PGPTAG_SYMMETRIC_SESSION_KEY
@ PGPTAG_SYMMETRIC_SESSION_KEY
Definition: rpmpgp.h:56
PGPTAG_COMMENT
@ PGPTAG_COMMENT
Definition: rpmpgp.h:73
PGPTAG_SECRET_KEY
@ PGPTAG_SECRET_KEY
Definition: rpmpgp.h:58
PGPTAG_PUBLIC_SUBKEY
@ PGPTAG_PUBLIC_SUBKEY
Definition: rpmpgp.h:67
PGPTAG_MDC
@ PGPTAG_MDC
Definition: rpmpgp.h:71
PGPTAG_CONTROL
@ PGPTAG_CONTROL
Definition: rpmpgp.h:75
PGPSYMKEYALGO_DES_SK
@ PGPSYMKEYALGO_DES_SK
Definition: rpmpgp.h:213
PGPSYMKEYALGO_BLOWFISH
@ PGPSYMKEYALGO_BLOWFISH
Definition: rpmpgp.h:211
PGPSYMKEYALGO_PLAINTEXT
@ PGPSYMKEYALGO_PLAINTEXT
Definition: rpmpgp.h:207
PGPSYMKEYALGO_AES_192
@ PGPSYMKEYALGO_AES_192
Definition: rpmpgp.h:215
PGPSYMKEYALGO_NOENCRYPT
@ PGPSYMKEYALGO_NOENCRYPT
Definition: rpmpgp.h:218
PGPSYMKEYALGO_AES_256
@ PGPSYMKEYALGO_AES_256
Definition: rpmpgp.h:216
PGPSYMKEYALGO_TWOFISH
@ PGPSYMKEYALGO_TWOFISH
Definition: rpmpgp.h:217
PGPSYMKEYALGO_TRIPLE_DES
@ PGPSYMKEYALGO_TRIPLE_DES
Definition: rpmpgp.h:209
PGPSYMKEYALGO_CAST5
@ PGPSYMKEYALGO_CAST5
Definition: rpmpgp.h:210
PGPSYMKEYALGO_SAFER
@ PGPSYMKEYALGO_SAFER
Definition: rpmpgp.h:212
PGPSYMKEYALGO_IDEA
@ PGPSYMKEYALGO_IDEA
Definition: rpmpgp.h:208
PGPSYMKEYALGO_AES_128
@ PGPSYMKEYALGO_AES_128
Definition: rpmpgp.h:214
PGPSUBTYPE_EMBEDDED_SIG
@ PGPSUBTYPE_EMBEDDED_SIG
Definition: rpmpgp.h:446
PGPSUBTYPE_EXPORTABLE_CERT
@ PGPSUBTYPE_EXPORTABLE_CERT
Definition: rpmpgp.h:426
PGPSUBTYPE_ARR
@ PGPSUBTYPE_ARR
Definition: rpmpgp.h:431
PGPSUBTYPE_NOTATION
@ PGPSUBTYPE_NOTATION
Definition: rpmpgp.h:435
PGPSUBTYPE_ISSUER_KEYID
@ PGPSUBTYPE_ISSUER_KEYID
Definition: rpmpgp.h:434
PGPSUBTYPE_REVOCABLE
@ PGPSUBTYPE_REVOCABLE
Definition: rpmpgp.h:429
PGPSUBTYPE_POLICY_URL
@ PGPSUBTYPE_POLICY_URL
Definition: rpmpgp.h:441
PGPSUBTYPE_FEATURES
@ PGPSUBTYPE_FEATURES
Definition: rpmpgp.h:445
PGPSUBTYPE_TRUST_SIG
@ PGPSUBTYPE_TRUST_SIG
Definition: rpmpgp.h:427
PGPSUBTYPE_PREFER_SYMKEY
@ PGPSUBTYPE_PREFER_SYMKEY
Definition: rpmpgp.h:432
PGPSUBTYPE_SIG_EXPIRE_TIME
@ PGPSUBTYPE_SIG_EXPIRE_TIME
Definition: rpmpgp.h:425
PGPSUBTYPE_INTERNAL_104
@ PGPSUBTYPE_INTERNAL_104
Definition: rpmpgp.h:452
PGPSUBTYPE_SIGNER_USERID
@ PGPSUBTYPE_SIGNER_USERID
Definition: rpmpgp.h:443
PGPSUBTYPE_PREFER_COMPRESS
@ PGPSUBTYPE_PREFER_COMPRESS
Definition: rpmpgp.h:437
PGPSUBTYPE_KEY_EXPIRE_TIME
@ PGPSUBTYPE_KEY_EXPIRE_TIME
Definition: rpmpgp.h:430
PGPSUBTYPE_REVOKE_KEY
@ PGPSUBTYPE_REVOKE_KEY
Definition: rpmpgp.h:433
PGPSUBTYPE_INTERNAL_101
@ PGPSUBTYPE_INTERNAL_101
Definition: rpmpgp.h:449
PGPSUBTYPE_PREFER_HASH
@ PGPSUBTYPE_PREFER_HASH
Definition: rpmpgp.h:436
PGPSUBTYPE_NONE
@ PGPSUBTYPE_NONE
Definition: rpmpgp.h:423
PGPSUBTYPE_SIG_CREATE_TIME
@ PGPSUBTYPE_SIG_CREATE_TIME
Definition: rpmpgp.h:424
PGPSUBTYPE_REVOKE_REASON
@ PGPSUBTYPE_REVOKE_REASON
Definition: rpmpgp.h:444
PGPSUBTYPE_KEYSERVER_PREFERS
@ PGPSUBTYPE_KEYSERVER_PREFERS
Definition: rpmpgp.h:438
PGPSUBTYPE_CRITICAL
@ PGPSUBTYPE_CRITICAL
Definition: rpmpgp.h:460
PGPSUBTYPE_INTERNAL_110
@ PGPSUBTYPE_INTERNAL_110
Definition: rpmpgp.h:458
PGPSUBTYPE_INTERNAL_109
@ PGPSUBTYPE_INTERNAL_109
Definition: rpmpgp.h:457
PGPSUBTYPE_INTERNAL_108
@ PGPSUBTYPE_INTERNAL_108
Definition: rpmpgp.h:456
PGPSUBTYPE_INTERNAL_105
@ PGPSUBTYPE_INTERNAL_105
Definition: rpmpgp.h:453
PGPSUBTYPE_INTERNAL_100
@ PGPSUBTYPE_INTERNAL_100
Definition: rpmpgp.h:448
PGPSUBTYPE_PREFER_KEYSERVER
@ PGPSUBTYPE_PREFER_KEYSERVER
Definition: rpmpgp.h:439
PGPSUBTYPE_INTERNAL_107
@ PGPSUBTYPE_INTERNAL_107
Definition: rpmpgp.h:455
PGPSUBTYPE_REGEX
@ PGPSUBTYPE_REGEX
Definition: rpmpgp.h:428
PGPSUBTYPE_PRIMARY_USERID
@ PGPSUBTYPE_PRIMARY_USERID
Definition: rpmpgp.h:440
PGPSUBTYPE_INTERNAL_102
@ PGPSUBTYPE_INTERNAL_102
Definition: rpmpgp.h:450
PGPSUBTYPE_INTERNAL_103
@ PGPSUBTYPE_INTERNAL_103
Definition: rpmpgp.h:451
PGPSUBTYPE_INTERNAL_106
@ PGPSUBTYPE_INTERNAL_106
Definition: rpmpgp.h:454
PGPSUBTYPE_KEY_FLAGS
@ PGPSUBTYPE_KEY_FLAGS
Definition: rpmpgp.h:442
rpmRC
enum rpmRC_e rpmRC
Package read return codes.
rpmcrypto.h
pgpValType_e
pgpValType_e
Definition: rpmpgp.h:948
PGPVAL_SUBTYPE
@ PGPVAL_SUBTYPE
Definition: rpmpgp.h:953
PGPVAL_ARMORKEY
@ PGPVAL_ARMORKEY
Definition: rpmpgp.h:951
PGPVAL_COMPRESSALGO
@ PGPVAL_COMPRESSALGO
Definition: rpmpgp.h:956
PGPVAL_SERVERPREFS
@ PGPVAL_SERVERPREFS
Definition: rpmpgp.h:958
PGPVAL_TAG
@ PGPVAL_TAG
Definition: rpmpgp.h:949
PGPVAL_HASHALGO
@ PGPVAL_HASHALGO
Definition: rpmpgp.h:957
PGPVAL_SIGTYPE
@ PGPVAL_SIGTYPE
Definition: rpmpgp.h:952
PGPVAL_PUBKEYALGO
@ PGPVAL_PUBKEYALGO
Definition: rpmpgp.h:954
PGPVAL_ARMORBLOCK
@ PGPVAL_ARMORBLOCK
Definition: rpmpgp.h:950
PGPVAL_SYMKEYALGO
@ PGPVAL_SYMKEYALGO
Definition: rpmpgp.h:955
pgpTime_t
uint8_t pgpTime_t[4]
Definition: rpmpgp.h:43
pgpValType
enum pgpValType_e pgpValType
pgpPktSymkey
struct pgpPktSymkey_s pgpPktSymkey
5.3.
pgpKeyID_t
uint8_t pgpKeyID_t[8]
Definition: rpmpgp.h:42
rpmstring.h
String manipulation helper functions.
rpmtypes.h
Typedefs for RPM abstract data types.
pgpPktCdata_s
5.6.
Definition: rpmpgp.h:774
pgpPktCdata_s::compressalgo
uint8_t compressalgo
Definition: rpmpgp.h:775
pgpPktCdata_s::data
uint8_t data[1]
Definition: rpmpgp.h:776
pgpPktEdata_s
5.7.
Definition: rpmpgp.h:813
pgpPktEdata_s::data
uint8_t data[1]
Definition: rpmpgp.h:814
pgpPktKeyV3_s
5.5.1.
Definition: rpmpgp.h:632
pgpPktKeyV3_s::version
uint8_t version
Definition: rpmpgp.h:633
pgpPktKeyV3_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:636
pgpPktKeyV3_s::time
pgpTime_t time
Definition: rpmpgp.h:634
pgpPktKeyV3_s::valid
uint8_t valid[2]
Definition: rpmpgp.h:635
pgpPktKeyV4_s
The version 4 format is similar to the version 3 format except for the absence of a validity period.
Definition: rpmpgp.h:675
pgpPktKeyV4_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:678
pgpPktKeyV4_s::time
pgpTime_t time
Definition: rpmpgp.h:677
pgpPktKeyV4_s::version
uint8_t version
Definition: rpmpgp.h:676
pgpPktLdata_s
5.8.
Definition: rpmpgp.h:864
pgpPktLdata_s::filenamelen
uint8_t filenamelen
Definition: rpmpgp.h:866
pgpPktLdata_s::filename
uint8_t filename[1]
Definition: rpmpgp.h:867
pgpPktLdata_s::format
uint8_t format
Definition: rpmpgp.h:865
pgpPktOnepass_s
5.4.
Definition: rpmpgp.h:551
pgpPktOnepass_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:553
pgpPktOnepass_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:555
pgpPktOnepass_s::signid
pgpKeyID_t signid
Definition: rpmpgp.h:556
pgpPktOnepass_s::version
uint8_t version
Definition: rpmpgp.h:552
pgpPktOnepass_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:554
pgpPktOnepass_s::nested
uint8_t nested
Definition: rpmpgp.h:557
pgpPktPubkey_s
5.1.
Definition: rpmpgp.h:112
pgpPktPubkey_s::algo
uint8_t algo
Definition: rpmpgp.h:115
pgpPktPubkey_s::version
uint8_t version
Definition: rpmpgp.h:113
pgpPktPubkey_s::keyid
pgpKeyID_t keyid
Definition: rpmpgp.h:114
pgpPktSigV3_s
5.2.2.
Definition: rpmpgp.h:316
pgpPktSigV3_s::version
uint8_t version
Definition: rpmpgp.h:317
pgpPktSigV3_s::time
pgpTime_t time
Definition: rpmpgp.h:320
pgpPktSigV3_s::signid
pgpKeyID_t signid
Definition: rpmpgp.h:321
pgpPktSigV3_s::signhash16
uint8_t signhash16[2]
Definition: rpmpgp.h:324
pgpPktSigV3_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:319
pgpPktSigV3_s::hashlen
uint8_t hashlen
Definition: rpmpgp.h:318
pgpPktSigV3_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:322
pgpPktSigV3_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:323
pgpPktSigV4_s
5.2.3.
Definition: rpmpgp.h:348
pgpPktSigV4_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:352
pgpPktSigV4_s::version
uint8_t version
Definition: rpmpgp.h:349
pgpPktSigV4_s::hashlen
uint8_t hashlen[2]
Definition: rpmpgp.h:353
pgpPktSigV4_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:350
pgpPktSigV4_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:351
pgpPktSymkey_s
5.3.
Definition: rpmpgp.h:516
pgpPktSymkey_s::version
uint8_t version
Definition: rpmpgp.h:517
pgpPktSymkey_s::s2k
uint8_t s2k[1]
Definition: rpmpgp.h:519
pgpPktSymkey_s::symkey_algo
uint8_t symkey_algo
Definition: rpmpgp.h:518
pgpPktTrust_s
5.10.
Definition: rpmpgp.h:883
pgpPktTrust_s::flag
uint8_t flag
Definition: rpmpgp.h:884
pgpPktUid_s
5.11.
Definition: rpmpgp.h:897
pgpPktUid_s::userid
uint8_t userid[1]
Definition: rpmpgp.h:898
pgpPktKey_u
5.5.3.
Definition: rpmpgp.h:745
pgpPktKey_u::v3
struct pgpPktKeyV3_s v3
Definition: rpmpgp.h:746
pgpPktKey_u::v4
struct pgpPktKeyV4_s v4
Definition: rpmpgp.h:747
pgpPktPre_u
Definition: rpmpgp.h:903
pgpPktPre_u::symkey
pgpPktSymkey symkey
Definition: rpmpgp.h:906
pgpPktPre_u::tdata
pgpPktTrust tdata
Definition: rpmpgp.h:913
pgpPktPre_u::pubkey
pgpPktPubkey pubkey
Definition: rpmpgp.h:904
pgpPktPre_u::uid
pgpPktUid uid
Definition: rpmpgp.h:914
pgpPktPre_u::cdata
pgpPktCdata cdata
Definition: rpmpgp.h:909
pgpPktPre_u::sig
pgpPktSig sig
Definition: rpmpgp.h:905
pgpPktPre_u::onepass
pgpPktOnepass onepass
Definition: rpmpgp.h:907
pgpPktPre_u::edata
pgpPktEdata edata
Definition: rpmpgp.h:910
pgpPktPre_u::ldata
pgpPktLdata ldata
Definition: rpmpgp.h:912
pgpPktPre_u::key
pgpPktKey key
Definition: rpmpgp.h:908
pgpPktSig_u
5.2.
Definition: rpmpgp.h:483
pgpPktSig_u::v4
struct pgpPktSigV4_s v4
Definition: rpmpgp.h:485
pgpPktSig_u::v3
struct pgpPktSigV3_s v3
Definition: rpmpgp.h:484