rpmio/rpmpgp.c File Reference

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

#include "system.h"
#include "rpmio_internal.h"
#include "debug.h"

Go to the source code of this file.

Defines

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

Functions

static void * _free (const void *p)
 Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
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 byte *p, unsigned int plen)
void pgpPrtVal (const char *pre, pgpValTbl vs, byte val)
static const char * pgpMpiHex (const byte *p)
static void pgpHexSet (const char *pre, int lbits, mp32number *mpn, const byte *p)
int pgpPrtSubType (const byte *h, unsigned int hlen)
static int pgpPrtSigParams (pgpTag tag, byte pubkey_algo, byte sigtype, const byte *p, const byte *h, unsigned int hlen)
int pgpPrtSig (pgpTag tag, const byte *h, unsigned int hlen)
static const byte * pgpPrtPubkeyParams (byte pubkey_algo, const byte *p, const byte *h, unsigned int hlen)
static const byte * pgpPrtSeckeyParams (byte pubkey_algo, const byte *p, const byte *h, unsigned int hlen)
int pgpPrtKey (pgpTag tag, const byte *h, unsigned int hlen)
int pgpPrtUserID (pgpTag tag, const byte *h, unsigned int hlen)
int pgpPrtComment (pgpTag tag, const byte *h, unsigned int hlen)
int pgpPrtPkt (const byte *pkt)
struct pgpDig_spgpNewDig (void)
struct pgpDig_spgpFreeDig (struct pgpDig_s *dig)
int pgpPrtPkts (const byte *pkts, unsigned int plen, struct pgpDig_s *dig, int printing)
pgpArmor pgpReadPkts (const char *fn, const byte **pkt, size_t *pktlen)

Variables

static int _debug = 0
static int _print = 0
static struct pgpDig_s_dig = NULL
static struct pgpDigParams_s_digp = NULL
struct pgpValTbl_s pgpSigTypeTbl []
struct pgpValTbl_s pgpPubkeyTbl []
struct pgpValTbl_s pgpSymkeyTbl []
struct pgpValTbl_s pgpCompressionTbl []
struct pgpValTbl_s pgpHashTbl []
struct pgpValTbl_s pgpKeyServerPrefsTbl []
struct pgpValTbl_s pgpSubTypeTbl []
struct pgpValTbl_s pgpTagTbl []
struct pgpValTbl_s pgpArmorTbl []
struct pgpValTbl_s pgpArmorKeyTbl []
static const char * pgpSigRSA []
static const char * pgpSigDSA []
static const char * pgpPublicRSA []
static const char * pgpSecretRSA []
static const char * pgpPublicDSA []
static const char * pgpSecretDSA []
static const char * pgpPublicELGAMAL []
static const char * pgpSecretELGAMAL []


Detailed Description

Routines to handle RFC-2440 detached signatures.

Definition in file rpmpgp.c.


Define Documentation

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


Function Documentation

static void* _free ( const void *  p  )  [inline, static]

Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

Parameters:
p memory to free
Returns:
NULL always

Definition at line 251 of file rpmpgp.c.

struct pgpDig_s* pgpFreeDig ( struct pgpDig_s dig  )  [read]

Definition at line 995 of file rpmpgp.c.

static void pgpHexSet ( const char *  pre,
int  lbits,
mp32number *  mpn,
const byte *  p 
) [static]

Definition at line 318 of file rpmpgp.c.

static const char* pgpMpiHex ( const byte *  p  )  [static]

Definition at line 309 of file rpmpgp.c.

struct pgpDig_s* pgpNewDig ( void   )  [read]

Definition at line 989 of file rpmpgp.c.

int pgpPrtComment ( pgpTag  tag,
const byte *  h,
unsigned int  hlen 
)

Definition at line 894 of file rpmpgp.c.

static void pgpPrtHex ( const char *  pre,
const byte *  p,
unsigned int  plen 
) [static]

Definition at line 286 of file rpmpgp.c.

static void pgpPrtInt ( const char *  pre,
int  i 
) [static]

Definition at line 266 of file rpmpgp.c.

int pgpPrtKey ( pgpTag  tag,
const byte *  h,
unsigned int  hlen 
)

Definition at line 815 of file rpmpgp.c.

static void pgpPrtNL ( void   )  [static]

Definition at line 258 of file rpmpgp.c.

int pgpPrtPkt ( const byte *  pkt  ) 

Definition at line 920 of file rpmpgp.c.

int pgpPrtPkts ( const byte *  pkts,
unsigned int  plen,
struct pgpDig_s dig,
int  printing 
)

Definition at line 1038 of file rpmpgp.c.

static const byte* pgpPrtPubkeyParams ( byte  pubkey_algo,
const byte *  p,
const byte *  h,
unsigned int  hlen 
) [static]

Definition at line 652 of file rpmpgp.c.

static const byte* pgpPrtSeckeyParams ( byte  pubkey_algo,
const byte *  p,
const byte *  h,
unsigned int  hlen 
) [static]

Definition at line 741 of file rpmpgp.c.

int pgpPrtSig ( pgpTag  tag,
const byte *  h,
unsigned int  hlen 
)

Definition at line 500 of file rpmpgp.c.

static int pgpPrtSigParams ( pgpTag  tag,
byte  pubkey_algo,
byte  sigtype,
const byte *  p,
const byte *  h,
unsigned int  hlen 
) [static]

Definition at line 444 of file rpmpgp.c.

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

Definition at line 276 of file rpmpgp.c.

int pgpPrtSubType ( const byte *  h,
unsigned int  hlen 
)

Definition at line 341 of file rpmpgp.c.

int pgpPrtUserID ( pgpTag  tag,
const byte *  h,
unsigned int  hlen 
)

Definition at line 878 of file rpmpgp.c.

void pgpPrtVal ( const char *  pre,
pgpValTbl  vs,
byte  val 
)

Definition at line 296 of file rpmpgp.c.

pgpArmor pgpReadPkts ( const char *  fn,
const byte **  pkt,
size_t *  pktlen 
)

Definition at line 1064 of file rpmpgp.c.


Variable Documentation

int _debug = 0 [static]

Definition at line 11 of file rpmpgp.c.

struct pgpDig_s* _dig = NULL [static]

Definition at line 17 of file rpmpgp.c.

struct pgpDigParams_s* _digp = NULL [static]

Definition at line 20 of file rpmpgp.c.

int _print = 0 [static]

Definition at line 14 of file rpmpgp.c.

Initial value:

 {
    { PGPARMORKEY_VERSION,      "Version: " },
    { PGPARMORKEY_COMMENT,      "Comment: " },
    { PGPARMORKEY_MESSAGEID,    "MessageID: " },
    { PGPARMORKEY_HASH,         "Hash: " },
    { PGPARMORKEY_CHARSET,      "Charset: " },
    { -1,                       "Unknown armor key" }
}

Definition at line 236 of file rpmpgp.c.

Initial value:

 {
    { PGPARMOR_MESSAGE,         "MESSAGE" },
    { PGPARMOR_PUBKEY,          "PUBLIC KEY BLOCK" },
    { PGPARMOR_SIGNATURE,       "SIGNATURE" },
    { PGPARMOR_SIGNED_MESSAGE,  "SIGNED MESSAGE" },
    { PGPARMOR_FILE,            "ARMORED FILE" },
    { PGPARMOR_PRIVKEY,         "PRIVATE KEY BLOCK" },
    { PGPARMOR_SECKEY,          "SECRET KEY BLOCK" },
    { -1,                       "Unknown armor block" }
}

Definition at line 225 of file rpmpgp.c.

Initial value:

 {
    { PGPCOMPRESSALGO_NONE,     "Uncompressed" },
    { PGPCOMPRESSALGO_ZIP,      "ZIP" },
    { PGPCOMPRESSALGO_ZLIB,     "ZLIB" },
    { -1,                       "Unknown compression algorithm" },
}

Definition at line 138 of file rpmpgp.c.

Initial value:

 {
    { PGPHASHALGO_MD5,          "MD5" },
    { PGPHASHALGO_SHA1,         "SHA1" },
    { PGPHASHALGO_RIPEMD160,    "RIPEMD160" },
    { PGPHASHALGO_MD2,          "MD2" },
    { PGPHASHALGO_TIGER192,     "TIGER192" },
    { PGPHASHALGO_HAVAL_5_160,  "HAVAL-5-160" },
    { -1,                       "Unknown hash algorithm" },
}

Definition at line 145 of file rpmpgp.c.

Initial value:

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

Definition at line 157 of file rpmpgp.c.

Initial value:

 {
    { PGPPUBKEYALGO_RSA,        "RSA" },
    { PGPPUBKEYALGO_RSA_ENCRYPT,"RSA(Encrypt-Only)" },
    { PGPPUBKEYALGO_RSA_SIGN,   "RSA(Sign-Only)" },
    { PGPPUBKEYALGO_ELGAMAL_ENCRYPT,"Elgamal(Encrypt-Only)" },
    { PGPPUBKEYALGO_DSA,        "DSA" },
    { PGPPUBKEYALGO_EC,         "Elliptic Curve" },
    { PGPPUBKEYALGO_ECDSA,      "ECDSA" },
    { PGPPUBKEYALGO_ELGAMAL,    "Elgamal" },
    { PGPPUBKEYALGO_DH,         "Diffie-Hellman (X9.42)" },
    { -1,                       "Unknown public key algorithm" },
}

Definition at line 110 of file rpmpgp.c.

const char* pgpPublicDSA[] [static]

Initial value:

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

Definition at line 623 of file rpmpgp.c.

const char* pgpPublicELGAMAL[] [static]

Initial value:

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

Definition at line 638 of file rpmpgp.c.

const char* pgpPublicRSA[] [static]

Initial value:

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

Definition at line 607 of file rpmpgp.c.

const char* pgpSecretDSA[] [static]

Initial value:

 {
    "    x =",
    NULL,
}

Definition at line 632 of file rpmpgp.c.

const char* pgpSecretELGAMAL[] [static]

Initial value:

 {
    "    x =",
    NULL,
}

Definition at line 646 of file rpmpgp.c.

const char* pgpSecretRSA[] [static]

Initial value:

 {
    "    d =",
    "    p =",
    "    q =",
    "    u =",
    NULL,
}

Definition at line 614 of file rpmpgp.c.

const char* pgpSigDSA[] [static]

Initial value:

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

Definition at line 437 of file rpmpgp.c.

const char* pgpSigRSA[] [static]

Initial value:

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

Definition at line 431 of file rpmpgp.c.

Initial value:

 {
    { PGPSIGTYPE_BINARY,        "Binary document signature" },
    { PGPSIGTYPE_TEXT,          "Text document signature" },
    { PGPSIGTYPE_STANDALONE,    "Standalone signature" },
    { PGPSIGTYPE_GENERIC_CERT,  "Generic certification of a User ID and Public Key" },
    { PGPSIGTYPE_PERSONA_CERT,  "Persona certification of a User ID and Public Key" },
    { PGPSIGTYPE_CASUAL_CERT,   "Casual certification of a User ID and Public Key" },
    { PGPSIGTYPE_POSITIVE_CERT, "Positive certification of a User ID and Public Key" },
    { PGPSIGTYPE_SUBKEY_BINDING,"Subkey Binding Signature" },
    { PGPSIGTYPE_SIGNED_KEY,    "Signature directly on a key" },
    { PGPSIGTYPE_KEY_REVOKE,    "Key revocation signature" },
    { PGPSIGTYPE_SUBKEY_REVOKE, "Subkey revocation signature" },
    { PGPSIGTYPE_CERT_REVOKE,   "Certification revocation signature" },
    { PGPSIGTYPE_TIMESTAMP,     "Timestamp signature" },
    { -1,                       "Unknown signature type" },
}

Definition at line 93 of file rpmpgp.c.

Definition at line 163 of file rpmpgp.c.

Initial value:

 {
    { PGPSYMKEYALGO_PLAINTEXT,  "Plaintext" },
    { PGPSYMKEYALGO_IDEA,       "IDEA" },
    { PGPSYMKEYALGO_TRIPLE_DES, "3DES" },
    { PGPSYMKEYALGO_CAST5,      "CAST5" },
    { PGPSYMKEYALGO_BLOWFISH,   "BLOWFISH" },
    { PGPSYMKEYALGO_SAFER,      "SAFER" },
    { PGPSYMKEYALGO_DES_SK,     "DES/SK" },
    { PGPSYMKEYALGO_AES_128,    "AES(128-bit key)" },
    { PGPSYMKEYALGO_AES_192,    "AES(192-bit key)" },
    { PGPSYMKEYALGO_AES_256,    "AES(256-bit key)" },
    { PGPSYMKEYALGO_TWOFISH,    "TWOFISH" },
    { -1,                       "Unknown symmetric key algorithm" },
}

Definition at line 123 of file rpmpgp.c.

Initial value:

 {
    { PGPTAG_PUBLIC_SESSION_KEY,"Public-Key Encrypted Session Key" },
    { PGPTAG_SIGNATURE,         "Signature" },
    { PGPTAG_SYMMETRIC_SESSION_KEY,"Symmetric-Key Encrypted Session Key" },
    { PGPTAG_ONEPASS_SIGNATURE, "One-Pass Signature" },
    { PGPTAG_SECRET_KEY,        "Secret Key" },
    { PGPTAG_PUBLIC_KEY,        "Public Key" },
    { PGPTAG_SECRET_SUBKEY,     "Secret Subkey" },
    { PGPTAG_COMPRESSED_DATA,   "Compressed Data" },
    { PGPTAG_SYMMETRIC_DATA,    "Symmetrically Encrypted Data" },
    { PGPTAG_MARKER,            "Marker" },
    { PGPTAG_LITERAL_DATA,      "Literal Data" },
    { PGPTAG_TRUST,             "Trust" },
    { PGPTAG_USER_ID,           "User ID" },
    { PGPTAG_PUBLIC_SUBKEY,     "Public Subkey" },
    { PGPTAG_COMMENT_OLD,       "Comment (from OpenPGP draft)" },
    { PGPTAG_PHOTOID,           "PGP's photo ID" },
    { PGPTAG_ENCRYPTED_MDC,     "Integrity protected encrypted data" },
    { PGPTAG_MDC,               "Manipulaion detection code packet" },
    { PGPTAG_PRIVATE_60,        "Private #60" },
    { PGPTAG_COMMENT,           "Comment" },
    { PGPTAG_PRIVATE_62,        "Private #62" },
    { PGPTAG_CONTROL,           "Control (GPG)" },
    { -1,                       "Unknown packet tag" },
}

Definition at line 199 of file rpmpgp.c.


Generated on Wed Oct 21 08:56:37 2009 for rpm by  doxygen 1.5.9