rpm
5.4.14
|
Routines to handle RFC-2440 detached signatures. More...
#include "system.h"
#include <rpmiotypes.h>
#include <rpmio.h>
#include <rpmbc.h>
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | _RPMIOB_INTERNAL |
#define | _RPMPGP_INTERNAL |
#define | TOKEQ(_s, _tok) (!strncmp((_s), (_tok), sizeof(_tok)-1)) |
Functions | |
static void | pgpPrtNL (void) |
static void | pgpPrtInt (const char *pre, int i) |
static void | pgpPrtStr (const char *pre, const char *s) |
static void | pgpPrtHex (const char *pre, const rpmuint8_t *p, size_t plen) |
void | pgpPrtVal (const char *pre, pgpValTbl vs, rpmuint8_t val) |
Print an OpenPGP value. More... | |
int | pgpPrtSubType (const rpmuint8_t *h, size_t hlen, pgpSigType sigtype) |
int | pgpPrtSigParams (pgpDig dig, const pgpPkt pp, pgpPubkeyAlgo pubkey_algo, pgpSigType sigtype, const rpmuint8_t *p) |
int | pgpPrtSig (const pgpPkt pp) |
const rpmuint8_t * | pgpPrtPubkeyParams (pgpDig dig, const pgpPkt pp, pgpPubkeyAlgo pubkey_algo, const rpmuint8_t *p) |
static const rpmuint8_t * | pgpPrtSeckeyParams (const pgpPkt pp, rpmuint8_t pubkey_algo, const rpmuint8_t *p) |
int | pgpPrtKey (const pgpPkt pp) |
int | pgpPrtUserID (const pgpPkt pp) |
int | pgpPrtComment (const pgpPkt pp) |
int | pgpPktLen (const rpmuint8_t *pkt, size_t pleft, pgpPkt pp) |
int | pgpPubkeyFingerprint (const rpmuint8_t *pkt, size_t pktlen, rpmuint8_t *keyid) |
Print/parse an OpenPGP subtype packet. More... | |
int | pgpExtractPubkeyFingerprint (const char *b64pkt, rpmuint8_t *keyid) |
Extract OpenPGP public key fingerprint from base64 encoded packet. More... | |
int | pgpPrtPkt (const rpmuint8_t *pkt, size_t pleft) |
Return lenth of a OpenPGP packet. More... | |
void | pgpDigClean (pgpDig dig) |
Release (malloc'd) data from container. More... | |
static void | pgpDigFini (void *__dig) |
static pgpDig | digGetPool (rpmioPool pool) |
pgpDig | pgpDigNew (pgpVSFlags vsflags, pgpPubkeyAlgo pubkey_algo) |
Create a container for parsed OpenPGP packates. More... | |
pgpDigParams | pgpGetSignature (pgpDig dig) |
Return OpenPGP signature parameters. More... | |
pgpDigParams | pgpGetPubkey (pgpDig dig) |
Return OpenPGP pubkey parameters. More... | |
rpmuint32_t | pgpGetSigtag (pgpDig dig) |
Get signature tag. More... | |
rpmuint32_t | pgpGetSigtype (pgpDig dig) |
Get signature tag type. More... | |
const void * | pgpGetSig (pgpDig dig) |
Get signature tag data, i.e. More... | |
rpmuint32_t | pgpGetSiglen (pgpDig dig) |
Get signature tag data length, i.e. More... | |
int | pgpSetSig (pgpDig dig, rpmuint32_t sigtag, rpmuint32_t sigtype, const void *sig, rpmuint32_t siglen) |
Set signature tag info, i.e. More... | |
void * | pgpStatsAccumulator (pgpDig dig, int opx) |
Return pgpDig container accumulator structure. More... | |
int | pgpSetFindPubkey (pgpDig dig, int(*findPubkey)(void *ts, void *dig), void *_ts) |
Set find pubkey vector. More... | |
int | pgpFindPubkey (pgpDig dig) |
Call find pubkey vector. More... | |
int | pgpGrabPkts (const rpmuint8_t *pkts, size_t pktlen, rpmuint8_t ***pppkts, int *pnpkts) |
Return array of packet pointers. More... | |
int | pgpPrtPkts (const rpmuint8_t *pkts, size_t pktlen, pgpDig dig, int printing) |
Print/parse a OpenPGP packet(s). More... | |
pgpArmor | pgpArmorUnwrap (rpmiob iob, rpmuint8_t **pkt, size_t *pktlen) |
Parse armored OpenPGP packets from an iob. More... | |
pgpArmor | pgpReadPkts (const char *fn, rpmuint8_t **pkt, size_t *pktlen) |
Parse armored OpenPGP packets from a file. More... | |
char * | pgpArmorWrap (rpmuint8_t atype, const unsigned char *s, size_t ns) |
Wrap a OpenPGP packets in ascii armor for transport. More... | |
pgpHashAlgo | pgpHashAlgoStringToNumber (const char *name, size_t name_len) |
Convert a hash algorithm "foo" to the internal PGPHASHALGO_FOO number. More... | |
Variables | |
int | _pgp_debug |
int | _pgp_print |
int | _pgp_error_count |
pgpImplVecs_t * | pgpImplVecs |
static pgpDigParams | _digp = NULL |
struct pgpValTbl_s | pgpSigTypeTbl [] |
struct pgpValTbl_s | pgpPubkeyTbl [] |
struct pgpValTbl_s | pgpSymkeyTbl [] |
Symmetric key (string, value) pairs. More... | |
struct pgpValTbl_s | pgpCompressionTbl [] |
Compression (string, value) pairs. More... | |
struct pgpValTbl_s | pgpHashTbl [] |
Hash (string, value) pairs. More... | |
struct pgpValTbl_s | pgpKeyServerPrefsTbl [] |
struct pgpValTbl_s | pgpSubTypeTbl [] |
Subtype (string, value) pairs. More... | |
struct pgpValTbl_s | pgpTagTbl [] |
struct pgpValTbl_s | pgpArmorTbl [] |
Armor (string, value) pairs. More... | |
struct pgpValTbl_s | pgpArmorKeyTbl [] |
Armor key (string, value) pairs. More... | |
static const char * | pgpSigRSA [] |
static const char * | pgpSigDSA [] |
static const char * | pgpSigECDSA [] |
static const char * | pgpPublicRSA [] |
static const char * | pgpPublicDSA [] |
static const char * | pgpPublicECDSA [] |
static const char * | pgpPublicELGAMAL [] |
pgpVSFlags | pgpDigVSFlags |
Disabler bits(s) for signature/digest checking. More... | |
rpmioPool | _digPool |
Routines to handle RFC-2440 detached signatures.
Definition in file rpmpgp.c.
#define TOKEQ | ( | _s, | |
_tok | |||
) | (!strncmp((_s), (_tok), sizeof(_tok)-1)) |
Referenced by pgpArmorUnwrap().
Definition at line 1188 of file rpmpgp.c.
References _digPool, dig, memset(), NULL, pgpDigFini(), rpmioGetPool(), and rpmioNewPool().
Referenced by pgpDigNew().
Definition at line 1138 of file rpmpgp.c.
References _free(), dig, NULL, pgpDigClean(), pgpImplFree(), rpmDigestFinal(), and void.
Referenced by digGetPool().
int pgpPktLen | ( | const rpmuint8_t * | pkt, |
size_t | pleft, | ||
pgpPkt | pp | ||
) |
Definition at line 939 of file rpmpgp.c.
References int, memset(), pgpGrab(), pgpLen(), and val.
Referenced by getSignid(), headerCheck(), pgpArmorUnwrap(), pgpGrabPkts(), pgpPrtPkt(), pgpPrtPkts(), pgpPubkeyFingerprint(), rpmcliImportPubkey(), rpmnsProbeSignature(), rpmReadPackageFile(), and rpmVerifySignatures().
Definition at line 910 of file rpmpgp.c.
References fprintf(), h, i, j, pgpPrtHex(), pgpPrtNL(), and pgpPrtVal().
Referenced by pgpPrtPkt().
|
static |
Definition at line 279 of file rpmpgp.c.
References fprintf(), and pgpHexStr().
Referenced by pgpPrtComment(), pgpPrtPkt(), pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), pgpPrtSig(), and pgpPrtSubType().
Definition at line 832 of file rpmpgp.c.
References fprintf(), p, pgpGrab(), pgpPrtNL(), pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), pgpPrtVal(), PGPTAG_PUBLIC_KEY, PGPTAG_PUBLIC_SUBKEY, pgpPktKeyV3_s::pubkey_algo, pgpPktKeyV4_s::pubkey_algo, rc, t, pgpPktKeyV3_s::time, pgpPktKeyV4_s::time, pgpPktKeyV3_s::valid, pgpPktKeyV3_s::version, and pgpPktKeyV4_s::version.
Referenced by pgpPrtPkt().
Definition at line 251 of file rpmpgp.c.
References fprintf().
Referenced by pgpPrtComment(), pgpPrtKey(), pgpPrtPkt(), pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), pgpPrtSig(), pgpPrtSigParams(), pgpPrtSubType(), and pgpPrtUserID().
const rpmuint8_t* pgpPrtPubkeyParams | ( | pgpDig | dig, |
const pgpPkt | pp, | ||
pgpPubkeyAlgo | pubkey_algo, | ||
const rpmuint8_t * | p | ||
) |
Definition at line 681 of file rpmpgp.c.
References fprintf(), i, NULL, p, pgpImplMpiItem(), pgpMpiLen(), pgpMpiStr(), pgpPrtHex(), pgpPrtNL(), pgpPrtStr(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ECDSA, PGPPUBKEYALGO_ELGAMAL_ENCRYPT, PGPPUBKEYALGO_RSA, and void.
Referenced by pgpPrtKey().
|
static |
Definition at line 756 of file rpmpgp.c.
References fprintf(), i, NULL, p, pgpMpiLen(), pgpMpiStr(), pgpPrtHex(), pgpPrtInt(), pgpPrtNL(), pgpPrtStr(), pgpPrtVal(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ECDSA, PGPPUBKEYALGO_ELGAMAL_ENCRYPT, PGPPUBKEYALGO_RSA, and unsigned.
Referenced by pgpPrtKey().
Definition at line 505 of file rpmpgp.c.
References fprintf(), pgpPktSigV3_s::hash_algo, pgpPktSigV4_s::hash_algo, pgpPktSigV3_s::hashlen, pgpPktSigV4_s::hashlen, if(), p, pgpGrab(), pgpHexStr(), pgpPrtHex(), pgpPrtNL(), pgpPrtSigParams(), pgpPrtSubType(), pgpPrtVal(), pgpPktSigV3_s::pubkey_algo, pgpPktSigV4_s::pubkey_algo, rc, pgpPktSigV3_s::signhash16, pgpPktSigV3_s::signid, pgpPktSigV3_s::sigtype, pgpPktSigV4_s::sigtype, t, pgpPktSigV3_s::time, pgpPktSigV3_s::version, pgpPktSigV4_s::version, and void.
Referenced by pgpPrtPkt().
int pgpPrtSigParams | ( | pgpDig | dig, |
const pgpPkt | pp, | ||
pgpPubkeyAlgo | pubkey_algo, | ||
pgpSigType | sigtype, | ||
const rpmuint8_t * | p | ||
) |
Definition at line 429 of file rpmpgp.c.
References fprintf(), i, pgpImplMpiItem(), pgpMpiLen(), pgpMpiStr(), pgpPrtNL(), pgpPrtStr(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ECDSA, PGPPUBKEYALGO_RSA, PGPSIGTYPE_BINARY, PGPSIGTYPE_TEXT, and xx.
Referenced by pgpPrtSig().
|
static |
Definition at line 269 of file rpmpgp.c.
References fprintf().
Referenced by pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), and pgpPrtSigParams().
int pgpPrtSubType | ( | const rpmuint8_t * | h, |
size_t | hlen, | ||
pgpSigType | sigtype | ||
) |
Definition at line 299 of file rpmpgp.c.
References fprintf(), h, i, p, pgpGrab(), pgpLen(), pgpPrtHex(), pgpPrtNL(), pgpPrtVal(), PGPSIGTYPE_BINARY, PGPSIGTYPE_POSITIVE_CERT, PGPSIGTYPE_STANDALONE, PGPSIGTYPE_TEXT, PGPSUBTYPE_ARR, PGPSUBTYPE_CRITICAL, PGPSUBTYPE_EMBEDDED_SIG, PGPSUBTYPE_EXPORTABLE_CERT, PGPSUBTYPE_FEATURES, PGPSUBTYPE_INTERNAL_100, PGPSUBTYPE_INTERNAL_101, PGPSUBTYPE_INTERNAL_102, PGPSUBTYPE_INTERNAL_103, PGPSUBTYPE_INTERNAL_104, PGPSUBTYPE_INTERNAL_105, PGPSUBTYPE_INTERNAL_106, PGPSUBTYPE_INTERNAL_107, PGPSUBTYPE_INTERNAL_108, PGPSUBTYPE_INTERNAL_109, PGPSUBTYPE_INTERNAL_110, PGPSUBTYPE_ISSUER_KEYID, PGPSUBTYPE_KEY_EXPIRE_TIME, PGPSUBTYPE_KEY_FLAGS, PGPSUBTYPE_KEYSERVER_PREFERS, PGPSUBTYPE_NOTATION, PGPSUBTYPE_POLICY_URL, PGPSUBTYPE_PREFER_COMPRESS, PGPSUBTYPE_PREFER_HASH, PGPSUBTYPE_PREFER_KEYSERVER, PGPSUBTYPE_PREFER_SYMKEY, PGPSUBTYPE_PRIMARY_USERID, PGPSUBTYPE_REGEX, PGPSUBTYPE_REVOCABLE, PGPSUBTYPE_REVOKE_KEY, PGPSUBTYPE_REVOKE_REASON, PGPSUBTYPE_SIG_CREATE_TIME, PGPSUBTYPE_SIG_EXPIRE_TIME, PGPSUBTYPE_SIG_TARGET, PGPSUBTYPE_SIGNER_USERID, PGPSUBTYPE_TRUST_SIG, and t.
Referenced by pgpPrtSig().
Definition at line 893 of file rpmpgp.c.
References _free(), fprintf(), pgpPrtNL(), pgpPrtVal(), t, and xmalloc.
Referenced by pgpPrtPkt().
|
static |
rpmioPool _digPool |
Definition at line 1186 of file rpmpgp.c.
Referenced by digGetPool(), and rpmioClean().
int _pgp_debug |
Definition at line 29 of file rpmpgp.c.
Referenced by pgpMpiSet(), and rpmbcMpiItem().
int _pgp_print |
Definition at line 32 of file rpmpgp.c.
Referenced by rpmbcMpiItem().
pgpVSFlags pgpDigVSFlags |
Disabler bits(s) for signature/digest checking.
Definition at line 1104 of file rpmpgp.c.
Referenced by headerCheck(), pgpDigNew(), rpmcliAllArgCallback(), rpmReadPackageFile(), rpmtsSetVSFlags(), and rpmtsVSFlags().
pgpImplVecs_t* pgpImplVecs |
Definition at line 38 of file rpmpgp.c.
Referenced by rpmioAllArgCallback().
struct pgpValTbl_s pgpKeyServerPrefsTbl[] |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |