rpm 5.3.12
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.

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)
int pgpPrtSigParams (pgpDig dig, const pgpPkt pp, pgpPubkeyAlgo pubkey_algo, pgpSigType sigtype, const rpmuint8_t *p)
int pgpPrtSig (const pgpPkt pp)
const rpmuint8_tpgpPrtPubkeyParams (pgpDig dig, 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)
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.
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)
 Return lenth of a 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, pgpPubkeyAlgo pubkey_algo)
 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.
int pgpGrabPkts (const rpmuint8_t *pkts, size_t pktlen, rpmuint8_t ***pppkts, int *pnpkts)
 Return array of packet pointers.
int pgpPrtPkts (const rpmuint8_t *pkts, size_t pktlen, pgpDig dig, int printing)
 Print/parse a OpenPGP packet(s).
pgpArmor pgpArmorUnwrap (rpmiob iob, rpmuint8_t **pkt, size_t *pktlen)
 Parse armored OpenPGP packets from an iob.
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
int _pgp_print
int _pgp_error_count
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 * 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.
rpmioPool _digPool

Detailed Description

Routines to handle RFC-2440 detached signatures.

Definition in file rpmpgp.c.


Define Documentation

#define _RPMIOB_INTERNAL

Definition at line 8 of file rpmpgp.c.

#define _RPMPGP_INTERNAL

Definition at line 13 of file rpmpgp.c.

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

Referenced by pgpArmorUnwrap().


Function Documentation

static pgpDig digGetPool ( rpmioPool  pool) [static]

Definition at line 1186 of file rpmpgp.c.

References _digPool, _pgp_debug, pgpDigFini(), rpmioGetPool(), and rpmioNewPool().

Referenced by pgpDigNew().

static void pgpDigFini ( void *  __dig) [static]

Definition at line 1136 of file rpmpgp.c.

References _free(), pgpDigClean(), pgpImplFree(), and rpmDigestFinal().

Referenced by digGetPool().

int pgpPktLen ( const rpmuint8_t pkt,
size_t  pleft,
pgpPkt  pp 
)
int pgpPrtComment ( const pgpPkt  pp)

Definition at line 908 of file rpmpgp.c.

References _pgp_print, pgpPrtHex(), pgpPrtNL(), and pgpPrtVal().

Referenced by pgpPrtPkt().

static void pgpPrtHex ( const char *  pre,
const rpmuint8_t p,
size_t  plen 
) [static]
static void pgpPrtInt ( const char *  pre,
int  i 
) [static]

Definition at line 257 of file rpmpgp.c.

References _pgp_print.

Referenced by pgpPrtSeckeyParams().

int pgpPrtKey ( const pgpPkt  pp)
static void pgpPrtNL ( void  ) [static]
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 
) [static]
int pgpPrtSig ( const pgpPkt  pp)
int pgpPrtSigParams ( pgpDig  dig,
const pgpPkt  pp,
pgpPubkeyAlgo  pubkey_algo,
pgpSigType  sigtype,
const rpmuint8_t p 
)
static void pgpPrtStr ( const char *  pre,
const char *  s 
) [static]

Definition at line 267 of file rpmpgp.c.

References _pgp_print.

Referenced by pgpPrtPubkeyParams(), pgpPrtSeckeyParams(), and pgpPrtSigParams().

int pgpPrtSubType ( const rpmuint8_t h,
size_t  hlen,
pgpSigType  sigtype 
)
int pgpPrtUserID ( const pgpPkt  pp)

Definition at line 891 of file rpmpgp.c.

References _digp, _free(), _pgp_print, pgpPrtNL(), pgpPrtVal(), and xmalloc().

Referenced by pgpPrtPkt().


Variable Documentation

pgpDigParams _digp = NULL [static]

Definition at line 70 of file rpmpgp.c.

Referenced by pgpPrtKey(), pgpPrtPkt(), pgpPrtPkts(), pgpPrtSig(), pgpPrtSubType(), and pgpPrtUserID().

Definition at line 1184 of file rpmpgp.c.

Referenced by digGetPool(), and rpmioClean().

Definition at line 26 of file rpmpgp.c.

Referenced by digGetPool(), pgpMpiSet(), pgpPrtSig(), and rpmbcMpiItem().

Definition at line 32 of file rpmpgp.c.

Disabler bits(s) for signature/digest checking.

Definition at line 1102 of file rpmpgp.c.

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

Definition at line 35 of file rpmpgp.c.

Referenced by rpmioAllArgCallback().

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

Definition at line 157 of file rpmpgp.c.

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

Definition at line 632 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpPublicECDSA[] [static]
Initial value:
 {
    "    Q =",
    NULL,
}

Definition at line 649 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

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

Definition at line 663 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

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

Definition at line 614 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

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

Definition at line 413 of file rpmpgp.c.

Referenced by pgpPrtSigParams().

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

Definition at line 420 of file rpmpgp.c.

Referenced by pgpPrtSigParams().

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

Definition at line 407 of file rpmpgp.c.

Referenced by pgpPrtSigParams().