rpm 4.19.92
The RPM Package Manager
Loading...
Searching...
No Matches
Macros | Typedefs | Enumerations | Functions
rpmpgp.h File Reference
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmstring.h>
#include <rpm/rpmcrypto.h>
Include dependency graph for rpmpgp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PGP_KEYID_LEN   8
 
#define PGPARMOR_ERROR   PGPARMOR_ERR_NO_BEGIN_PGP
 

Typedefs

typedef struct pgpDigParams_s * pgpDigParams
 
typedef uint8_t pgpKeyID_t[PGP_KEYID_LEN]
 
typedef enum pgpTag_e pgpTag
 
typedef enum pgpSigType_e pgpSigType
 
typedef enum pgpPubkeyAlgo_e pgpPubkeyAlgo
 
typedef enum pgpSymkeyAlgo_e pgpSymkeyAlgo
 
typedef enum pgpCompressAlgo_e pgpCompressAlgo
 
typedef enum pgpHashAlgo_e pgpHashAlgo
 
typedef enum pgpCurveId_e pgpCurveId
 
typedef enum pgpSubType_e pgpSubType
 
typedef enum pgpArmor_e pgpArmor
 
typedef enum pgpArmorKey_e pgpArmorKey
 
typedef enum pgpValType_e pgpValType
 

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
}
 
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_PRIMARY_BINDING = 0x19 , PGPSIGTYPE_SIGNED_KEY = 0x1F , PGPSIGTYPE_KEY_REVOKE = 0x20 , PGPSIGTYPE_SUBKEY_REVOKE = 0x28 ,
  PGPSIGTYPE_CERT_REVOKE = 0x30 , PGPSIGTYPE_TIMESTAMP = 0x40
}
 
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
}
 
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
}
 
enum  pgpCompressAlgo_e { PGPCOMPRESSALGO_NONE = 0 , PGPCOMPRESSALGO_ZIP = 1 , PGPCOMPRESSALGO_ZLIB = 2 , PGPCOMPRESSALGO_BZIP2 = 3 }
 
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
}
 
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
}
 
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_ISSUER_FINGERPRINT = 33 , 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
}
 
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 , 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
}
 
enum  pgpArmorKey_e {
  PGPARMORKEY_VERSION = 1 , PGPARMORKEY_COMMENT = 2 , PGPARMORKEY_MESSAGEID = 3 , PGPARMORKEY_HASH = 4 ,
  PGPARMORKEY_CHARSET = 5
}
 
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
}
 

Functions

const char * pgpValString (pgpValType type, uint8_t val)
 
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 pgpPrtParams2 (const uint8_t *pkts, size_t pktlen, unsigned int pkttype, pgpDigParams *ret, char **lints)
 
int pgpPrtParamsSubkeys (const uint8_t *pkts, size_t pktlen, pgpDigParams mainkey, pgpDigParams **subkeys, int *subkeysCount)
 
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)
 
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 pgpVerifySignature2 (pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx, char **lints)
 
int pgpSignatureType (pgpDigParams sig)
 
char * pgpIdentItem (pgpDigParams digp)
 

Detailed Description

OpenPGP constants and structures from RFC-2440.

Text from RFC-2440 in comments is Copyright (C) The Internet Society (1998). All Rights Reserved.

EdDSA algorithm identifier value taken from https://datatracker.ietf.org/doc/draft-ietf-openpgp-rfc4880bis/ This value is used in gnupg since version 2.1.0