rpm  5.2.1
Data Structures | Defines | Functions | Variables
rpmio/rpmpgp.c File Reference

Routines to handle RFC-2440 detached signatures. More...

#include "system.h"
#include <rpmiotypes.h>
#include <rpmio.h>
#include <rpmbc.h>
#include "debug.h"
Include dependency graph for rpmpgp.c:

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_tpgpPrtPubkeyParams (const pgpPkt pp, pgpPubkeyAlgo pubkey_algo, const rpmuint8_t *p)
static const rpmuint8_tpgpPrtSeckeyParams (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_tpgpImplVecs
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

Detailed Description

Routines to handle RFC-2440 detached signatures.

Definition in file rpmpgp.c.


Define Documentation

Definition at line 8 of file rpmpgp.c.

Definition at line 13 of file rpmpgp.c.

#define TOKEQ (   _s,
  _tok 
)    (!strncmp((_s), (_tok), sizeof(_tok)-1))

Referenced by pgpReadPkts().


Function Documentation

static pgpDig digGetPool ( rpmioPool  pool) [static]

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]

Definition at line 239 of file rpmpgp.c.

References _pgp_print.

Referenced by pgpPrtSeckeyParams().

static void pgpPrtNL ( void  ) [static]
static const rpmuint8_t* pgpPrtPubkeyParams ( const pgpPkt  pp,
pgpPubkeyAlgo  pubkey_algo,
const rpmuint8_t p 
) [static]
static const rpmuint8_t* pgpPrtSeckeyParams ( const pgpPkt  pp,
rpmuint8_t  pubkey_algo,
const rpmuint8_t p 
) [static]
static int pgpPrtSigParams ( const pgpPkt  pp,
pgpPubkeyAlgo  pubkey_algo,
pgpSigType  sigtype,
const rpmuint8_t p 
) [static]
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().


Variable Documentation

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

Disabler bits(s) for signature/digest checking.

Definition at line 1013 of file rpmpgp.c.

Referenced by headerCheck(), pgpDigNew(), rpmcliAllArgCallback(), rpmReadPackageFile(), rpmtsSetVSFlags(), and rpmtsVSFlags().

Initial value:
    





















  
static pgpDig _dig = NULL

Definition at line 32 of file rpmpgp.c.

Referenced by rpmioAllArgCallback().

Initial value:
 {
    { 0x80,                     "No-modify" },
    { -1,                       "Unknown key server preference" },
}

Definition at line 139 of file rpmpgp.c.

const char* pgpPublicDSA[] [static]
Initial value:
 {
    "    p =",
    "    q =",
    "    g =",
    "    y =",
    NULL,
}

Definition at line 581 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpPublicELGAMAL[] [static]
Initial value:
 {
    "    p =",
    "    g =",
    "    y =",
    NULL,
}

Definition at line 598 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpPublicRSA[] [static]
Initial value:
 {
    "    n =",
    "    e =",
    NULL,
}

Definition at line 563 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpSigDSA[] [static]
Initial value:
 {
    "    r =",
    "    s =",
    NULL,
}

Definition at line 387 of file rpmpgp.c.

Referenced by pgpPrtSigParams().

const char* pgpSigRSA[] [static]
Initial value:
 {
    " m**d =",
    NULL,
}

Definition at line 381 of file rpmpgp.c.

Referenced by pgpPrtSigParams().