Data Structures | 
| struct   | pgpValTbl_s | 
| struct   | pgpPktPubkey_s | 
|   | 5.1.  More...
  | 
| struct   | pgpPktSigV3_s | 
|   | 5.2.2.  More...
  | 
| struct   | pgpPktSigV4_s | 
|   | 5.2.3.  More...
  | 
| union   | pgpPktSig_u | 
|   | 5.2.  More...
  | 
| struct   | pgpPktSymkey_s | 
|   | 5.3.  More...
  | 
| struct   | pgpPktOnepass_s | 
|   | 5.4.  More...
  | 
| struct   | pgpPktKeyV3_s | 
|   | 5.5.1.  More...
  | 
| struct   | pgpPktKeyV4_s | 
|   | The version 4 format is similar to the version 3 format except for the absence of a validity period.  More...
  | 
| union   | pgpPktKey_u | 
|   | 5.5.3.  More...
  | 
| struct   | pgpPktCdata_s | 
| struct   | pgpPktEdata_s | 
| struct   | pgpPktLdata_s | 
| struct   | pgpPktTrust_s | 
| struct   | pgpPktUid_s | 
| union   | pgpPktPre_u | 
Defines | 
| #define  | PGPARMOR_ERROR   PGPARMOR_ERR_NO_BEGIN_PGP | 
Typedefs | 
| typedef struct DIGEST_CTX_s *  | DIGEST_CTX | 
| typedef struct rpmDigestBundle_s *  | rpmDigestBundle | 
| typedef struct pgpDig_s *  | pgpDig | 
| typedef struct pgpDigParams_s *  | pgpDigParams | 
| typedef uint8_t  | pgpKeyID_t [8] | 
| typedef uint8_t  | pgpTime_t [4] | 
| typedef struct pgpValTbl_s *  | pgpValTbl | 
| typedef enum pgpTag_e  | pgpTag | 
|   | 4.3.  
  | 
| typedef struct pgpPktPubkey_s  | pgpPktPubkey | 
|   | 5.1.  
  | 
| typedef enum pgpSigType_e  | pgpSigType | 
|   | 5.2.1.  
  | 
| typedef enum pgpPubkeyAlgo_e  | pgpPubkeyAlgo | 
|   | 9.1.  
  | 
| typedef enum pgpSymkeyAlgo_e  | pgpSymkeyAlgo | 
|   | 9.2.  
  | 
| typedef enum pgpCompressAlgo_e  | pgpCompressAlgo | 
|   | 9.3.  
  | 
| typedef enum pgpHashAlgo_e  | pgpHashAlgo | 
|   | 9.4.  
  | 
| typedef struct pgpPktSigV3_s *  | pgpPktSigV3 | 
|   | 5.2.2.  
  | 
| typedef struct pgpPktSigV4_s *  | pgpPktSigV4 | 
|   | 5.2.3.  
  | 
| typedef enum pgpSubType_e  | pgpSubType | 
|   | 5.2.3.1.  
  | 
| typedef union pgpPktSig_u *  | pgpPktSig | 
|   | 5.2.  
  | 
| typedef struct pgpPktSymkey_s  | pgpPktSymkey | 
|   | 5.3.  
  | 
| typedef struct pgpPktOnepass_s *  | pgpPktOnepass | 
|   | 5.4.  
  | 
| typedef struct pgpPktKeyV3_s *  | pgpPktKeyV3 | 
|   | 5.5.1.  
  | 
| typedef struct pgpPktKeyV4_s *  | pgpPktKeyV4 | 
|   | The version 4 format is similar to the version 3 format except for the absence of a validity period.  
  | 
| typedef union pgpPktKey_u  | pgpPktKey | 
|   | 5.5.3.  
  | 
| typedef struct pgpPktCdata_s  | pgpPktCdata | 
| typedef struct pgpPktEdata_s  | pgpPktEdata | 
| typedef struct pgpPktLdata_s  | pgpPktLdata | 
| typedef struct pgpPktTrust_s  | pgpPktTrust | 
| typedef struct pgpPktUid_s  | pgpPktUid | 
| typedef enum pgpArmor_e  | pgpArmor | 
| typedef enum pgpArmorKey_e  | pgpArmorKey | 
| typedef enum rpmDigestFlags_e  | rpmDigestFlags | 
|   | Bit(s) to control digest operation.  
  | 
Enumerations | 
| 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
 
 } | 
|   | 4.3.  
 More...
  | 
| 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
 
 } | 
|   | 5.2.1.  
 More...
  | 
| 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
 
 } | 
|   | 9.1.  
 More...
  | 
| 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
 
 } | 
|   | 9.2.  
 More...
  | 
| enum   | pgpCompressAlgo_e { PGPCOMPRESSALGO_NONE =  0, 
PGPCOMPRESSALGO_ZIP =  1, 
PGPCOMPRESSALGO_ZLIB =  2, 
PGPCOMPRESSALGO_BZIP2 =  3
 } | 
|   | 9.3.  
 More...
  | 
| 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
 
 } | 
|   | 9.4.  
 More...
  | 
| 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
 
 } | 
|   | 5.2.3.1.  
 More...
  | 
| 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
 
 } | 
| enum   | pgpArmorKey_e {  
  PGPARMORKEY_VERSION =  1, 
PGPARMORKEY_COMMENT =  2, 
PGPARMORKEY_MESSAGEID =  3, 
PGPARMORKEY_HASH =  4, 
 
  PGPARMORKEY_CHARSET =  5
 
 } | 
| enum   | rpmDigestFlags_e { RPMDIGEST_NONE =  0
 } | 
|   | Bit(s) to control digest operation.  
 More...
  | 
Functions | 
| static unsigned int  | pgpGrab (const uint8_t *s, size_t nbytes) | 
|   | Return (native-endian) integer from big-endian representation.  
  | 
| static size_t  | pgpLen (const uint8_t *s, size_t *lenp) | 
|   | Return length of an OpenPGP packet.  
  | 
| char *  | pgpHexStr (const uint8_t *p, size_t plen) | 
|   | Return hex formatted representation of bytes.  
  | 
| int  | pgpPubkeyFingerprint (const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid) | 
|   | Calculate OpenPGP public key fingerprint.  
  | 
| int  | pgpExtractPubkeyFingerprint (const char *b64pkt, pgpKeyID_t keyid) | 
|   | Extract OpenPGP public key fingerprint from base64 encoded packet.  
  | 
| int  | pgpPrtPkts (const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing) | 
|   | Print/parse a OpenPGP packet(s).  
  | 
| pgpArmor  | pgpReadPkts (const char *fn, uint8_t **pkt, size_t *pktlen) | 
|   | Parse armored OpenPGP packets from a file.  
  | 
| pgpArmor  | pgpParsePkts (const char *armor, uint8_t **pkt, size_t *pktlen) | 
|   | Parse armored OpenPGP packets from memory.  
  | 
| char *  | pgpArmorWrap (int atype, const unsigned char *s, size_t ns) | 
|   | Wrap a OpenPGP packets in ascii armor for transport.  
  | 
| pgpDig  | pgpNewDig (void) | 
|   | Create a container for parsed OpenPGP packet(s).  
  | 
| void  | pgpCleanDig (pgpDig dig) | 
|   | Release (malloc'd) data from container.  
  | 
| pgpDig  | pgpFreeDig (pgpDig dig) | 
|   | Destroy a container for parsed OpenPGP packet(s).  
  | 
| rpmRC  | pgpVerifySig (pgpDig dig, DIGEST_CTX hashctx) | 
|   | Verify a PGP signature.  
  | 
| char *  | pgpIdentItem (pgpDigParams digp) | 
|   | Return a string identification of a PGP signature/pubkey.  
  | 
| int  | rpmInitCrypto (void) | 
|   | Perform cryptography initialization.  
  | 
| int  | rpmFreeCrypto (void) | 
|   | Shutdown cryptography.  
  | 
| DIGEST_CTX  | rpmDigestDup (DIGEST_CTX octx) | 
|   | Duplicate a digest context.  
  | 
| size_t  | rpmDigestLength (pgpHashAlgo hashalgo) | 
|   | Obtain digest length in bytes.  
  | 
| DIGEST_CTX  | rpmDigestInit (pgpHashAlgo hashalgo, rpmDigestFlags flags) | 
|   | Initialize digest.  
  | 
| int  | rpmDigestUpdate (DIGEST_CTX ctx, const void *data, size_t len) | 
|   | Update context with next plain text buffer.  
  | 
| int  | rpmDigestFinal (DIGEST_CTX ctx, void **datap, size_t *lenp, int asAscii) | 
|   | Return digest and destroy context.  
  | 
| rpmDigestBundle  | rpmDigestBundleNew (void) | 
|   | Create a new digest bundle.  
  | 
| rpmDigestBundle  | rpmDigestBundleFree (rpmDigestBundle bundle) | 
|   | Free a digest bundle and all contained digest contexts.  
  | 
| int  | rpmDigestBundleAdd (rpmDigestBundle bundle, pgpHashAlgo algo, 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.  
  | 
| int  | rpmDigestBundleFinal (rpmDigestBundle bundle, pgpHashAlgo algo, void **datap, size_t *lenp, int asAscii) | 
|   | Return digest from a bundle and destroy context, see rpmDigestFinal().  
  | 
| DIGEST_CTX  | rpmDigestBundleDupCtx (rpmDigestBundle bundle, pgpHashAlgo algo) | 
|   | Duplicate a digest context from a bundle.  
  | 
OpenPGP constants and structures from RFC-2440. 
Text from RFC-2440 in comments is Copyright (C) The Internet Society (1998). All Rights Reserved.