rpm
5.2.1
|
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.
Data Structures | |
struct | pgpPkt_s |
Defines | |
#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. | |
int | pgpPrtSubType (const rpmuint8_t *h, size_t hlen, pgpSigType sigtype) |
Print/parse an OpenPGP subtype packet. | |
static int | pgpPrtSigParams (const pgpPkt pp, pgpPubkeyAlgo pubkey_algo, pgpSigType sigtype, const rpmuint8_t *p) |
int | pgpPrtSig (const pgpPkt pp) |
Print/parse an OpenPGP signature packet. | |
static const rpmuint8_t * | pgpPrtPubkeyParams (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) |
Print/parse an OpenPGP key packet. | |
int | pgpPrtUserID (const pgpPkt pp) |
Print/parse an OpenPGP userid packet. | |
int | pgpPrtComment (const pgpPkt pp) |
Print/parse an OpenPGP comment packet. | |
int | pgpPktLen (const rpmuint8_t *pkt, size_t pleft, pgpPkt pp) |
Return lenth of a OpenPGP packet. | |
int | pgpPubkeyFingerprint (const rpmuint8_t *pkt, size_t pktlen, rpmuint8_t *keyid) |
Calculate OpenPGP public key fingerprint. | |
int | pgpExtractPubkeyFingerprint (const char *b64pkt, rpmuint8_t *keyid) |
Extract OpenPGP public key fingerprint from base64 encoded packet. | |
int | pgpPrtPkt (const rpmuint8_t *pkt, size_t pleft) |
Print/parse next OpenPGP packet. | |
void | pgpDigClean (pgpDig dig) |
Release (malloc'd) data from container. | |
static void | pgpDigFini (void *__dig) |
static pgpDig | digGetPool (rpmioPool pool) |
pgpDig | pgpDigNew (pgpVSFlags vsflags) |
Create a container for parsed OpenPGP packates. | |
pgpDigParams | pgpGetSignature (pgpDig dig) |
Return OpenPGP signature parameters. | |
pgpDigParams | pgpGetPubkey (pgpDig dig) |
Return OpenPGP pubkey parameters. | |
rpmuint32_t | pgpGetSigtag (pgpDig dig) |
Get signature tag. | |
rpmuint32_t | pgpGetSigtype (pgpDig dig) |
Get signature tag type. | |
const void * | pgpGetSig (pgpDig dig) |
Get signature tag data, i.e. | |
rpmuint32_t | pgpGetSiglen (pgpDig dig) |
Get signature tag data length, i.e. | |
int | pgpSetSig (pgpDig dig, rpmuint32_t sigtag, rpmuint32_t sigtype, const void *sig, rpmuint32_t siglen) |
Set signature tag info, i.e. | |
void * | pgpStatsAccumulator (pgpDig dig, int opx) |
Return pgpDig container accumulator structure. | |
int | pgpSetFindPubkey (pgpDig dig, int(*findPubkey)(void *ts, void *dig), void *_ts) |
Set find pubkey vector. | |
int | pgpFindPubkey (pgpDig dig) |
Call find pubkey vector. | |
static int | pgpGrabPkts (const rpmuint8_t *pkts, size_t pktlen, rpmuint8_t ***pppkts, int *pnpkts) |
int | pgpPrtPkts (const rpmuint8_t *pkts, size_t pktlen, pgpDig dig, int printing) |
Print/parse a OpenPGP packet(s). | |
pgpArmor | pgpReadPkts (const char *fn, rpmuint8_t **pkt, size_t *pktlen) |
Parse armored OpenPGP packets from a file. | |
char * | pgpArmorWrap (rpmuint8_t atype, const unsigned char *s, size_t ns) |
Wrap a OpenPGP packets in ascii armor for transport. | |
pgpHashAlgo | pgpHashAlgoStringToNumber (const char *name, size_t name_len) |
Convert a hash algorithm "foo" to the internal PGPHASHALGO_FOO number. | |
Variables | |
int | _pgp_debug = 0 |
int | _pgp_print = 0 |
pgpImplVecs_t * | pgpImplVecs |
static pgpDigParams | _digp = NULL |
struct pgpValTbl_s | pgpSigTypeTbl [] |
struct pgpValTbl_s | pgpPubkeyTbl [] |
struct pgpValTbl_s | pgpSymkeyTbl [] |
Symmetric key (string, value) pairs. | |
struct pgpValTbl_s | pgpCompressionTbl [] |
Compression (string, value) pairs. | |
struct pgpValTbl_s | pgpHashTbl [] |
Hash (string, value) pairs. | |
struct pgpValTbl_s | pgpKeyServerPrefsTbl [] |
struct pgpValTbl_s | pgpSubTypeTbl [] |
Subtype (string, value) pairs. | |
struct pgpValTbl_s | pgpTagTbl [] |
struct pgpValTbl_s | pgpArmorTbl [] |
Armor (string, value) pairs. | |
struct pgpValTbl_s | pgpArmorKeyTbl [] |
Armor key (string, value) pairs. | |
static const char * | pgpSigRSA [] |
static const char * | pgpSigDSA [] |
static const char * | pgpPublicRSA [] |
static const char * | pgpPublicDSA [] |
static const char * | pgpPublicELGAMAL [] |
pgpVSFlags | pgpDigVSFlags |
Disabler bits(s) for signature/digest checking. | |
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 pgpReadPkts().
Definition at line 1093 of file rpmpgp.c.
References _digPool, _pgp_debug, pgpDigFini(), rpmioGetPool(), and rpmioNewPool().
Referenced by pgpDigNew().
static void pgpDigFini | ( | void * | __dig | ) | [static] |
Definition at line 1048 of file rpmpgp.c.
References _free(), pgpDigClean(), pgpImplFree(), and rpmDigestFinal().
Referenced by digGetPool().
static int pgpGrabPkts | ( | const rpmuint8_t * | pkts, |
size_t | pktlen, | ||
rpmuint8_t *** | pppkts, | ||
int * | pnpkts | ||
) | [static] |
Definition at line 1195 of file rpmpgp.c.
References _free(), alloca(), pgpPktLen(), pgpPkt_s::pktlen, and xcalloc().
Referenced by pgpPrtPkts().
static void pgpPrtHex | ( | const char * | pre, |
const rpmuint8_t * | p, | ||
size_t | plen | ||
) | [static] |
Definition at line 259 of file rpmpgp.c.
References _pgp_print, and pgpHexStr().
Referenced by pgpPrtComment(), pgpPrtPkt(), pgpPrtSeckeyParams(), pgpPrtSig(), and pgpPrtSubType().
static void pgpPrtInt | ( | const char * | pre, |
int | i | ||
) | [static] |
static void pgpPrtNL | ( | void | ) | [static] |
Definition at line 231 of file rpmpgp.c.
References _pgp_print.
Referenced by pgpPrtComment(), pgpPrtKey(), pgpPrtPkt(), pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), pgpPrtSig(), pgpPrtSigParams(), pgpPrtSubType(), and pgpPrtUserID().
static const rpmuint8_t* pgpPrtPubkeyParams | ( | const pgpPkt | pp, |
pgpPubkeyAlgo | pubkey_algo, | ||
const rpmuint8_t * | p | ||
) | [static] |
Definition at line 614 of file rpmpgp.c.
References _pgp_print, pgpPkt_s::h, pgpPkt_s::hlen, pgpImplMpiItem(), pgpMpiLen(), pgpMpiStr(), pgpPrtNL(), pgpPrtStr(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ELGAMAL_ENCRYPT, PGPPUBKEYALGO_RSA, pgpPublicDSA, pgpPublicELGAMAL, and pgpPublicRSA.
Referenced by pgpPrtKey().
static const rpmuint8_t* pgpPrtSeckeyParams | ( | const pgpPkt | pp, |
rpmuint8_t | pubkey_algo, | ||
const rpmuint8_t * | p | ||
) | [static] |
Definition at line 672 of file rpmpgp.c.
References _pgp_print, pgpPkt_s::h, pgpPkt_s::hlen, pgpMpiLen(), pgpMpiStr(), pgpPrtHex(), pgpPrtInt(), pgpPrtNL(), pgpPrtStr(), pgpPrtVal(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ELGAMAL_ENCRYPT, and PGPPUBKEYALGO_RSA.
Referenced by pgpPrtKey().
static int pgpPrtSigParams | ( | const pgpPkt | pp, |
pgpPubkeyAlgo | pubkey_algo, | ||
pgpSigType | sigtype, | ||
const rpmuint8_t * | p | ||
) | [static] |
Definition at line 394 of file rpmpgp.c.
References _pgp_print, pgpPkt_s::h, pgpPkt_s::hlen, pgpImplMpiItem(), pgpMpiLen(), pgpMpiStr(), pgpPrtNL(), pgpPrtStr(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_RSA, pgpSigDSA, pgpSigRSA, PGPSIGTYPE_BINARY, and PGPSIGTYPE_TEXT.
Referenced by pgpPrtSig().
static void pgpPrtStr | ( | const char * | pre, |
const char * | s | ||
) | [static] |
Definition at line 249 of file rpmpgp.c.
References _pgp_print.
Referenced by pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), and pgpPrtSigParams().
pgpDigParams _digp = NULL [static] |
Definition at line 59 of file rpmpgp.c.
Referenced by pgpPrtKey(), pgpPrtPkt(), pgpPrtPkts(), pgpPrtSig(), pgpPrtSubType(), and pgpPrtUserID().
Definition at line 1091 of file rpmpgp.c.
Referenced by digGetPool(), and rpmioClean().
int _pgp_debug = 0 |
Definition at line 26 of file rpmpgp.c.
Referenced by digGetPool(), pgpMpiSet(), pgpPrtSig(), and rpmbcMpiItem().
int _pgp_print = 0 |
Definition at line 29 of file rpmpgp.c.
Referenced by pgpMpiSet(), pgpPrtComment(), pgpPrtHex(), pgpPrtInt(), pgpPrtKey(), pgpPrtNL(), pgpPrtPkts(), pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), pgpPrtSig(), pgpPrtSigParams(), pgpPrtStr(), pgpPrtSubType(), pgpPrtUserID(), pgpPrtVal(), and rpmbcMpiItem().
Disabler bits(s) for signature/digest checking.
Definition at line 1013 of file rpmpgp.c.
Referenced by headerCheck(), pgpDigNew(), rpmcliAllArgCallback(), rpmReadPackageFile(), rpmtsSetVSFlags(), and rpmtsVSFlags().
static pgpDig _dig = NULL
Definition at line 32 of file rpmpgp.c.
Referenced by rpmioAllArgCallback().
struct pgpValTbl_s pgpKeyServerPrefsTbl[] |
const char* pgpPublicDSA[] [static] |
{ " p =", " q =", " g =", " y =", NULL, }
Definition at line 581 of file rpmpgp.c.
Referenced by pgpPrtPubkeyParams().
const char* pgpPublicELGAMAL[] [static] |
{ " p =", " g =", " y =", NULL, }
Definition at line 598 of file rpmpgp.c.
Referenced by pgpPrtPubkeyParams().
const char* pgpPublicRSA[] [static] |
{ " n =", " e =", NULL, }
Definition at line 563 of file rpmpgp.c.
Referenced by pgpPrtPubkeyParams().
const char* pgpSigDSA[] [static] |
{ " r =", " s =", NULL, }
Definition at line 387 of file rpmpgp.c.
Referenced by pgpPrtSigParams().
const char* pgpSigRSA[] [static] |
{
" m**d =",
NULL,
}
Definition at line 381 of file rpmpgp.c.
Referenced by pgpPrtSigParams().