Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/signature.c File Reference

More...

#include "system.h"
#include "rpmio_internal.h"
#include "rpmlib.h"
#include "rpmmacro.h"
#include "md5.h"
#include "misc.h"
#include "rpmlead.h"
#include "signature.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define X(_x)   (unsigned)((_x) & 0xff)

Typedefs

typedef int(* md5func )(const char *fn, byte *digest)

Functions

int rpmLookupSignatureType (int action)
const char * rpmDetectPGPVersion (pgpVersion *pgpVer)
rpmRC checkSize (FD_t fd, int siglen, int pad, int datalen)
 Check package size.

rpmRC rpmReadSignature (FD_t fd, Header *headerp, sigType sig_type)
int rpmWriteSignature (FD_t fd, Header h)
Header rpmFreeSignature (Header h)
int makePGPSignature (const char *file, void **sig, int_32 *size, const char *passPhrase)
int makeGPGSignature (const char *file, void **sig, int_32 *size, const char *passPhrase)
int rpmAddSignature (Header h, const char *file, int_32 sigTag, const char *passPhrase)
rpmVerifySignatureReturn verifySizeSignature (const char *datafile, int_32 size, char *result)
rpmVerifySignatureReturn verifyMD5Signature (const char *datafile, const byte *sig, char *result, md5func fn)
rpmVerifySignatureReturn verifyPGPSignature (const char *datafile, const void *sig, int count, char *result)
rpmVerifySignatureReturn do_verifyGPGSignature (const char *gpghome, const char *sigfile, const char *datafile, char *result)
rpmVerifySignatureReturn verifyGPGSignature (const char *datafile, const void *sig, int count, char *result)
int checkPassPhrase (const char *passPhrase, const int sigTag)
char * rpmGetPassPhrase (const char *prompt, const int sigTag)
rpmVerifySignatureReturn rpmVerifySignature (const char *file, int_32 sigTag, const void *sig, int count, char *result)

Variables

Header rpmNewSignature (void)


Detailed Description

Definition in file signature.c.


Define Documentation

#define X _x       (unsigned)((_x) & 0xff)
 

Definition at line 504 of file signature.c.

Referenced by verifyMD5Signature().


Typedef Documentation

typedef int(* md5func)(const char * fn, byte * digest)
 

Definition at line 29 of file signature.c.

Referenced by verifyMD5Signature().


Function Documentation

int checkPassPhrase const char *    passPhrase,
const int    sigTag
[static]
 

Definition at line 826 of file signature.c.

References _, dosetenv(), errno, PGP_2, PGP_5, PGP_NOTDETECTED, PGP_UNKNOWN, pgpVersion, rpmDetectPGPVersion(), RPMERR_EXEC, RPMERR_SIGGEN, rpmError, rpmExpand(), rpmIsVerbose, RPMSIGTAG_GPG, RPMSIGTAG_PGP, and RPMSIGTAG_PGP5.

Referenced by rpmGetPassPhrase().

rpmRC checkSize FD_t    fd,
int    siglen,
int    pad,
int    datalen
[inline, static]
 

Check package size.

Todo:
rpmio: use fdSize rather than fstat(2) to get file size.
Parameters:
fd  package file handle
siglen  signature header size
pad  signature padding
datalen  length of header+payload
Returns:
rpmRC return code

Definition at line 111 of file signature.c.

References _, Fileno(), RPMMESS_DEBUG, RPMMESS_WARNING, rpmMessage, rpmRC, RPMRC_BADSIZE, RPMRC_FAIL, and RPMRC_OK.

Referenced by rpmReadSignature().

rpmVerifySignatureReturn do_verifyGPGSignature const char *    gpghome,
const char *    sigfile,
const char *    datafile,
char *    result
[static]
 

Definition at line 689 of file signature.c.

References _, addMacro(), dosetenv(), errno, RPMERR_EXEC, RPMERR_FORK, rpmError, rpmExpand(), RPMSIG_BAD, RPMSIG_NOKEY, RPMSIG_OK, and xstrncasecmp().

Referenced by verifyGPGSignature().

int makeGPGSignature const char *    file,
void **    sig,
int_32   size,
const char *    passPhrase
[static]
 

Definition at line 357 of file signature.c.

References _, _free(), addMacro(), alloca(), delMacro(), dosetenv(), errno, Fclose(), Ferror(), Fopen(), int_32, RPMERR_EXEC, RPMERR_SIGGEN, rpmError, rpmExpand(), RPMMESS_DEBUG, rpmMessage, stpcpy(), timedRead, and xmalloc().

Referenced by rpmAddSignature().

int makePGPSignature const char *    file,
void **    sig,
int_32   size,
const char *    passPhrase
[static]
 

Definition at line 245 of file signature.c.

References _, _free(), addMacro(), alloca(), delMacro(), dosetenv(), errno, Fclose(), Ferror(), Fopen(), int_32, PGP_2, PGP_5, PGP_NOTDETECTED, PGP_UNKNOWN, pgpVersion, rpmDetectPGPVersion(), RPMERR_EXEC, RPMERR_SIGGEN, rpmError, rpmExpand(), RPMMESS_DEBUG, rpmMessage, stpcpy(), timedRead, and xmalloc().

Referenced by rpmAddSignature().

Header rpmFreeSignature Header    h
 

Destroy signature header from package.

Parameters:
h  signature header
Returns:
NULL always

Definition at line 240 of file signature.c.

References headerFree().

Referenced by psmStage(), readPackageHeaders(), rpmReadPackageHeader(), and writeRPM().

rpmVerifySignatureReturn rpmVerifySignature const char *    file,
int_32    sigTag,
const void *    sig,
int    count,
char *    result
 

Verify a signature from a package.

Parameters:
file  file name of header+payload
sigTag  type of signature
sig  signature itself
count  no. of bytes in signature
Return values:
result  detailed text result of signature verification
Returns:
result of signature verification

Definition at line 973 of file signature.c.

References _, int_32, RPMSIG_UNKNOWN, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_SIZE, rpmVerifySignatureReturn, verifyGPGSignature(), verifyMD5Signature(), verifyPGPSignature(), and verifySizeSignature().

Referenced by rpmCheckSig().

rpmVerifySignatureReturn verifyGPGSignature const char *    datafile,
const void *    sig,
int    count,
char *    result
[static]
 

Definition at line 783 of file signature.c.

References _, _free(), do_verifyGPGSignature(), Fclose(), Fwrite(), makeTempFile(), RPMERR_SCRIPT, rpmError, rpmExpand(), RPMSIG_BAD, RPMSIG_NOKEY, and rpmVerifySignatureReturn.

Referenced by rpmVerifySignature().

rpmVerifySignatureReturn verifyMD5Signature const char *    datafile,
const byte *    sig,
char *    result,
md5func    fn
[static]
 

Definition at line 507 of file signature.c.

References md5func, RPMSIG_BAD, RPMSIG_OK, and X.

Referenced by rpmVerifySignature().

rpmVerifySignatureReturn verifyPGPSignature const char *    datafile,
const void *    sig,
int    count,
char *    result
[static]
 

Definition at line 544 of file signature.c.

References _, _free(), addMacro(), delMacro(), dosetenv(), errno, Fclose(), Ferror(), Fopen(), Fwrite(), makeTempFile(), PGP_2, PGP_5, PGP_NOTDETECTED, PGP_UNKNOWN, pgpVersion, rpmDetectPGPVersion(), RPMERR_EXEC, rpmError, rpmExpand(), rpmGetPath(), RPMSIG_BAD, RPMSIG_NOKEY, RPMSIG_NOTTRUSTED, RPMSIG_OK, and stpncpy().

Referenced by rpmVerifySignature().

rpmVerifySignatureReturn verifySizeSignature const char *    datafile,
int_32    size,
char *    result
[static]
 

Definition at line 486 of file signature.c.

References int_32, RPMSIG_BAD, and RPMSIG_OK.

Referenced by rpmVerifySignature().


Variable Documentation

Header rpmNewSignature(void)
 

Definition at line 234 of file signature.c.


Generated on Sun Feb 2 23:32:10 2003 for rpm by doxygen1.2.18