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

# SIGNATURE.

## Files

file | digest.c
file | rpmlib.h
file | rpmpgp.c
| Routines to handle RFC-2440 detached signatures.

file | signature.c
file | signature.h
| Generate and verify signatures.

## Typedefs

typedef enum sigType_e | sigType
typedef enum pgpVersion_e | pgpVersion

## Enumerations

enum | sigType_e { RPMSIGTYPE_HEADERSIG = 5 }
enum | pgpVersion_e { PGP_NOTDETECTED = -1, PGP_UNKNOWN = 0, PGP_2 = 2, PGP_5 = 5 }

## Functions

Header | rpmNewSignature (void)
rpmRC | rpmReadSignature (FD_t fd, Header *sighp, sigType sig_type)
int | rpmWriteSignature (FD_t fd, Header h)
int | rpmAddSignature (Header sig, const char *file, int_32 sigTag, const char *passPhrase)
int | rpmLookupSignatureType (int action)
char * | rpmGetPassPhrase (const char *prompt, const int sigTag)
const char * | rpmDetectPGPVersion (pgpVersion *pgpVer)

## Typedef Documentation

typedef enum pgpVersion_e pgpVersion

Identify PGP versions.

Note:
  Greater than 0 is a valid PGP version.

Referenced by checkPassPhrase, makePGPSignature, and rpmDetectPGPVersion.

typedef enum sigType_e sigType

| Signature types stored in rpm lead. Referenced by rpmLookupSignatureType, and rpmReadSignature.

## Enumeration Type Documentation

enum pgpVersion_e

Identify PGP versions.

Note:
  Greater than 0 is a valid PGP version.

Enumeration values:

  PGP_NOTDETECTED |
  PGP_UNKNOWN |
  PGP_2 |
  PGP_5 |

Definition at line 22 of file signature.h.

enum sigType_e

Signature types stored in rpm lead.

Enumeration values:

  RPMSIGTYPE_HEADERSIG | Header style signature

Definition at line 14 of file signature.h.

## Function Documentation

int rpmAddSignature | ( | Header | sig,
|  | const char * | file,
|  | int_32 | sigTag,
|  | const char * | passPhrase
| ) |

Generate signature(s) from a header+payload file, save in signature header.

Parameters:

  sig | signature header
  file | header+payload file name
  sigTag | type of signature(s) to add
  passPhrase | private key pass phrase

Returns:
  0 on success, -1 on failure

Definition at line 615 of file signature.c.

Referenced by rpmReSign, and writeRPM.

const char* rpmDetectPGPVersion | ( | pgpVersion * | pgpVer | ) |

| < Lookup type in effect Definition at line 71 of file signature.c. References int_32. Referenced by checkPassPhrase, main, and makePGPSignature.

char* rpmGetPassPhrase | ( | const char * | prompt,
|  | const int | sigTag
| ) |

Read a pass phrase using getpass(3), confirm with gpg/pgp helper binaries.

Parameters:

  prompt | user prompt
  sigTag | signature type/tag

Returns:
  pass phrase

Definition at line 779 of file signature.c.

Referenced by main.

int rpmLookupSignatureType | ( | int | action | ) |

Return type of signature needed for signing/building.

Parameters:

  action | enable/disable/query action

Returns:
  sigTag to use, 0 if none, -1 on error

Definition at line 31 of file signature.c.

References rpmRC, and sigType.

Referenced by main, rpmReSign, and writeRPM.

Header rpmNewSignature | ( | void |  | ) |

Return new, empty (signature) header instance.

Returns:
  signature header

Definition at line 242 of file signature.c.

rpmRC rpmReadSignature | ( | FD_t | fd,
|  | Header * | sighp,
|  | sigType | sig_type
| ) |

Read (and verify header+payload size) signature header. If an old-style signature is found, we emulate a new style one.

Parameters:

  fd | file handle

Return values:

  sighp | address of (signature) header (or NULL)

Parameters:

  sig_type | type of signature header to read (from lead)

Returns:
  rpmRC return code

Definition at line 146 of file signature.c.

Referenced by main, rpmReadPackageFile, rpmReSign, and rpmVerifySignatures.

int rpmWriteSignature | ( | FD_t | fd,
|  | Header | h
| ) |

Write signature header.

Parameters:

  fd | file handle
  h | (signature) header

Returns:
  0 on success, 1 on error

Definition at line 220 of file signature.c.

Referenced by main, rpmReSign, and writeRPM.