rpmio/rpmpgp.c File Reference

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

#include "system.h"
#include "rpmio_internal.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 _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 uint8_t *p, size_t plen)
void pgpPrtVal (const char *pre, pgpValTbl vs, uint8_t val)
 Print an OpenPGP value.
int pgpPrtSubType (const uint8_t *h, size_t hlen, pgpSigType sigtype)
 Print/parse an OpenPGP subtype packet.
static int pgpPrtSigParams (const pgpPkt pp, uint8_t pubkey_algo, uint8_t sigtype, const uint8_t *p)
int pgpPrtSig (const pgpPkt pp)
 Print/parse an OpenPGP signature packet.
static const uint8_t * pgpPrtPubkeyParams (const pgpPkt pp, uint8_t pubkey_algo, const uint8_t *p)
static const uint8_t * pgpPrtSeckeyParams (const pgpPkt pp, uint8_t pubkey_algo, const uint8_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 uint8_t *pkt, size_t pleft, pgpPkt pp)
 Return lenth of a OpenPGP packet.
int pgpPubkeyFingerprint (const uint8_t *pkt, size_t pktlen, uint8_t *keyid)
 Calculate OpenPGP public key fingerprint.
int pgpExtractPubkeyFingerprint (const char *b64pkt, uint8_t *keyid)
 Extract OpenPGP public key fingerprint from base64 encoded packet.
int pgpPrtPkt (const uint8_t *pkt, size_t pleft)
 Print/parse next OpenPGP packet.
pgpDig XpgpDigUnlink (pgpDig dig, const char *msg, const char *fn, unsigned ln)
pgpDig XpgpDigLink (pgpDig dig, const char *msg, const char *fn, unsigned ln)
void pgpDigClean (pgpDig dig)
 Release (malloc'd) data from container.
pgpDig pgpDigFree (pgpDig dig)
 Destroy a container for parsed OpenPGP packates.
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.
uint32_t pgpGetSigtag (pgpDig dig)
 Get signature tag.
uint32_t pgpGetSigtype (pgpDig dig)
 Get signature tag type.
const void * pgpGetSig (pgpDig dig)
 Get signature tag data, i.e.
uint32_t pgpGetSiglen (pgpDig dig)
 Get signature tag data length, i.e.
int pgpSetSig (pgpDig dig, uint32_t sigtag, uint32_t sigtype, const void *sig, uint32_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 uint8_t *pkts, size_t pktlen, uint8_t ***pppkts, int *pnpkts)
int pgpPrtPkts (const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing)
 Print/parse a OpenPGP packet(s).
pgpArmor pgpReadPkts (const char *fn, const uint8_t **pkt, size_t *pktlen)
 Parse armored OpenPGP packets from a file.
char * pgpArmorWrap (int atype, const unsigned char *s, size_t ns)
 Wrap a OpenPGP packets in ascii armor for transport.
int pgpHashAlgoStringToNumber (const char *name, size_t name_len)
 Convert a hash algorithm <name> to the internal PGPHASHALGO_<name> number.

Variables

int _pgp_debug = 0
int _pgp_print = 0
pgpImplVecs_tpgpImplVecs
static pgpDig _dig = NULL
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.


Detailed Description

Routines to handle RFC-2440 detached signatures.

Definition in file rpmpgp.c.


Define Documentation

#define _RPMPGP_INTERNAL

Definition at line 8 of file rpmpgp.c.

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

Referenced by pgpReadPkts().


Function Documentation

static int pgpGrabPkts ( const uint8_t *  pkts,
size_t  pktlen,
uint8_t ***  pppkts,
int *  pnpkts 
) [static]

Definition at line 1178 of file rpmpgp.c.

References _free(), alloca(), pgpPktLen(), pgpPkt_s::pktlen, and xcalloc().

Referenced by pgpPrtPkts().

static void pgpPrtHex ( const char *  pre,
const uint8_t *  p,
size_t  plen 
) [static]

Definition at line 234 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 214 of file rpmpgp.c.

References _pgp_print.

Referenced by pgpPrtSeckeyParams().

static void pgpPrtNL ( void   )  [static]

static const uint8_t* pgpPrtPubkeyParams ( const pgpPkt  pp,
uint8_t  pubkey_algo,
const uint8_t *  p 
) [static]

static const uint8_t* pgpPrtSeckeyParams ( const pgpPkt  pp,
uint8_t  pubkey_algo,
const uint8_t *  p 
) [static]

static int pgpPrtSigParams ( const pgpPkt  pp,
uint8_t  pubkey_algo,
uint8_t  sigtype,
const uint8_t *  p 
) [static]

static void pgpPrtStr ( const char *  pre,
const char *  s 
) [static]

Definition at line 224 of file rpmpgp.c.

References _pgp_print.

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

pgpDig XpgpDigLink ( pgpDig  dig,
const char *  msg,
const char *  fn,
unsigned  ln 
)

Todo:
Remove debugging entry from the ABI.

Definition at line 999 of file rpmpgp.c.

References _pgp_debug.

pgpDig XpgpDigUnlink ( pgpDig  dig,
const char *  msg,
const char *  fn,
unsigned  ln 
)

Todo:
Remove debugging entry from the ABI.

Definition at line 988 of file rpmpgp.c.

References _pgp_debug.


Variable Documentation

pgpDig _dig = NULL [static]

Definition at line 34 of file rpmpgp.c.

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

pgpDigParams _digp = NULL [static]

Definition at line 37 of file rpmpgp.c.

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

int _pgp_debug = 0

Definition at line 20 of file rpmpgp.c.

Referenced by pgpPrtSig(), XpgpDigLink(), and XpgpDigUnlink().

int _pgp_print = 0

Disabler bits(s) for signature/digest checking.

Definition at line 986 of file rpmpgp.c.

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

Initial value:




        &rpmbcImplVecs

Definition at line 26 of file rpmpgp.c.

Referenced by rpmcliAllArgCallback().

Initial value:

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

Definition at line 115 of file rpmpgp.c.

const char* pgpPublicDSA[] [static]

Initial value:

 {
    "    p =",
    "    q =",
    "    g =",
    "    y =",
    NULL,
}

Definition at line 553 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpPublicELGAMAL[] [static]

Initial value:

 {
    "    p =",
    "    g =",
    "    y =",
    NULL,
}

Definition at line 570 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpPublicRSA[] [static]

Initial value:

 {
    "    n =",
    "    e =",
    NULL,
}

Definition at line 535 of file rpmpgp.c.

Referenced by pgpPrtPubkeyParams().

const char* pgpSigDSA[] [static]

Initial value:

 {
    "    r =",
    "    s =",
    NULL,
}

Definition at line 361 of file rpmpgp.c.

Referenced by pgpPrtSigParams().

const char* pgpSigRSA[] [static]

Initial value:

 {
    " m**d =",
    NULL,
}

Definition at line 355 of file rpmpgp.c.

Referenced by pgpPrtSigParams().


Generated on Sun Dec 21 08:39:04 2008 for rpm by  doxygen 1.5.6