rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
RPM keyring API.

RPM keyring API. More...

Files

file  rpmkeyring.h

Typedefs

typedef enum rpmKeyringModifyMode_e rpmKeyringModifyMode

Enumerations

enum  rpmKeyringModifyMode_e { RPMKEYRING_ADD = 1 , RPMKEYRING_DELETE = 2 }

Functions

RPM_PUBLIC_API rpmKeyring rpmKeyringNew (void)
RPM_PUBLIC_API rpmKeyring rpmKeyringFree (rpmKeyring keyring)
RPM_PUBLIC_API int rpmKeyringAddKey (rpmKeyring keyring, rpmPubkey key)
RPM_PUBLIC_API rpmKeyringIterator rpmKeyringInitIterator (rpmKeyring keyring, int unused)
RPM_PUBLIC_API rpmPubkey rpmKeyringIteratorNext (rpmKeyringIterator iterator)
RPM_PUBLIC_API rpmKeyringIterator rpmKeyringIteratorFree (rpmKeyringIterator iterator)
RPM_PUBLIC_API rpmRC rpmKeyringVerifySig (rpmKeyring keyring, pgpDigParams sig, DIGEST_CTX ctx)
RPM_PUBLIC_API rpmRC rpmKeyringVerifySig2 (rpmKeyring keyring, pgpDigParams sig, DIGEST_CTX ctx, rpmPubkey *keyptr)
RPM_PUBLIC_API rpmRC rpmKeyringVerifySig3 (rpmKeyring keyring, pgpDigParams sig, DIGEST_CTX ctx, rpmPubkey *keyptr, ARGV_t *lints)
RPM_PUBLIC_API rpmKeyring rpmKeyringLink (rpmKeyring keyring)
RPM_PUBLIC_API rpmPubkey rpmPubkeyNew (const uint8_t *pkt, size_t pktlen)
RPM_PUBLIC_API rpmPubkey * rpmGetSubkeys (rpmPubkey primarykey, int *count)
RPM_PUBLIC_API rpmPubkey rpmPubkeyRead (const char *filename)
RPM_PUBLIC_API rpmPubkey rpmPubkeyFree (rpmPubkey key)
RPM_PUBLIC_API rpmPubkey rpmPubkeyLink (rpmPubkey key)
RPM_PUBLIC_API char * rpmPubkeyBase64 (rpmPubkey key)
RPM_PUBLIC_API char * rpmPubkeyArmorWrap (rpmPubkey key)
RPM_PUBLIC_API int rpmPubkeyFingerprint (rpmPubkey key, uint8_t **fp, size_t *fplen)
RPM_PUBLIC_API const char * rpmPubkeyFingerprintAsHex (rpmPubkey key)
RPM_PUBLIC_API const char * rpmPubkeyKeyIDAsHex (rpmPubkey key)
RPM_PUBLIC_API pgpDigParams rpmPubkeyPgpDigParams (rpmPubkey key)
RPM_PUBLIC_API rpmPubkey rpmKeyringLookupKey (rpmKeyring keyring, rpmPubkey key)
RPM_PUBLIC_API int rpmKeyringModify (rpmKeyring keyring, rpmPubkey key, rpmKeyringModifyMode mode)
RPM_PUBLIC_API rpmRC rpmPubkeyMerge (rpmPubkey oldkey, rpmPubkey newkey, rpmPubkey *mergedkeyp)

Detailed Description

RPM keyring API.

Typedef Documentation

◆ rpmKeyringModifyMode

Operation mode definitions for rpmKeyringModify ADD: add a new key, merge with pre-existing key DELETE: delete an existing key

Enumeration Type Documentation

◆ rpmKeyringModifyMode_e

Operation mode definitions for rpmKeyringModify ADD: add a new key, merge with pre-existing key DELETE: delete an existing key

Function Documentation

◆ rpmGetSubkeys()

RPM_PUBLIC_API rpmPubkey * rpmGetSubkeys ( rpmPubkey primarykey,
int * count )

Return array of subkeys belonging to primarykey param primarykey primary rpmPubkey param count count of returned subkeys

Returns
an array of subkey's handles

◆ rpmKeyringAddKey()

RPM_PUBLIC_API int rpmKeyringAddKey ( rpmKeyring keyring,
rpmPubkey key )

Add a public key to keyring.

Parameters
keyringkeyring handle
keypubkey handle
Returns
0 on success, -1 on error, 1 if key already present

◆ rpmKeyringFree()

RPM_PUBLIC_API rpmKeyring rpmKeyringFree ( rpmKeyring keyring)

Free keyring and the keys within it

Returns
NULL always

◆ rpmKeyringInitIterator()

RPM_PUBLIC_API rpmKeyringIterator rpmKeyringInitIterator ( rpmKeyring keyring,
int unused )

Get iterator for all the primary keys in the keyring

Parameters
keyringkeyring handle
unusedreserved for future use, must be 0
Returns
iterator or NULL

◆ rpmKeyringIteratorFree()

RPM_PUBLIC_API rpmKeyringIterator rpmKeyringIteratorFree ( rpmKeyringIterator iterator)

Free iterator

Parameters
iteratoriterator handle
Returns
NULL

◆ rpmKeyringIteratorNext()

RPM_PUBLIC_API rpmPubkey rpmKeyringIteratorNext ( rpmKeyringIterator iterator)

Get next key in keyring

Parameters
iteratoriterator handle
Returns
weak reference to next public key or NULL if end is reached

◆ rpmKeyringLink()

RPM_PUBLIC_API rpmKeyring rpmKeyringLink ( rpmKeyring keyring)

Reference a keyring.

Parameters
keyringkeyring handle
Returns
new keyring reference

◆ rpmKeyringLookupKey()

RPM_PUBLIC_API rpmPubkey rpmKeyringLookupKey ( rpmKeyring keyring,
rpmPubkey key )

Lookup a pubkey in the keyring

Parameters
keyringkeyring handle
keyPubkey to find in keyring
Returns
pubkey handle, NULL if not found

◆ rpmKeyringModify()

RPM_PUBLIC_API int rpmKeyringModify ( rpmKeyring keyring,
rpmPubkey key,
rpmKeyringModifyMode mode )

Modify the keys in the keyring

Parameters
keyringkeyring handle
keypubkey handle
modemode of operation
Returns
0 on success, -1 on error, 1 if the operation did not change anything (key already present for RPMKEYRING_ADD, key not found for RPMKEYRING_DELETE)

◆ rpmKeyringNew()

RPM_PUBLIC_API rpmKeyring rpmKeyringNew ( void )

Create a new, empty keyring

Returns
new keyring handle

◆ rpmKeyringVerifySig()

RPM_PUBLIC_API rpmRC rpmKeyringVerifySig ( rpmKeyring keyring,
pgpDigParams sig,
DIGEST_CTX ctx )

Perform combined keyring lookup and signature verification

Parameters
keyringkeyring handle
sigOpenPGP signature parameters
ctxsignature hash context
Returns
RPMRC_OK / RPMRC_FAIL / RPMRC_NOKEY

◆ rpmKeyringVerifySig2()

RPM_PUBLIC_API rpmRC rpmKeyringVerifySig2 ( rpmKeyring keyring,
pgpDigParams sig,
DIGEST_CTX ctx,
rpmPubkey * keyptr )

Perform combined keyring lookup and signature verification (DEPRECATED)

Parameters
keyringkeyring handle
sigOpenPGP signature parameters
ctxsignature hash context
keyptrmatching key (refcounted)
Returns
RPMRC_OK / RPMRC_FAIL / RPMRC_NOKEY

◆ rpmKeyringVerifySig3()

RPM_PUBLIC_API rpmRC rpmKeyringVerifySig3 ( rpmKeyring keyring,
pgpDigParams sig,
DIGEST_CTX ctx,
rpmPubkey * keyptr,
ARGV_t * lints )

Perform combined keyring lookup and signature verification

Parameters
keyringkeyring handle
sigOpenPGP signature parameters
ctxsignature hash context
keyptrmatching key (refcounted)
lintslints (if any)
Returns
RPMRC_OK / RPMRC_FAIL / RPMRC_NOKEY

◆ rpmPubkeyArmorWrap()

RPM_PUBLIC_API char * rpmPubkeyArmorWrap ( rpmPubkey key)

Return base64 encoding of pubkey

Parameters
keyPubkey
Returns
armored pubkey (malloced), NULL on error

◆ rpmPubkeyBase64()

RPM_PUBLIC_API char * rpmPubkeyBase64 ( rpmPubkey key)

Return base64 encoding of pubkey

Parameters
keyPubkey
Returns
base64 encoded pubkey (malloced), NULL on error

◆ rpmPubkeyFingerprint()

RPM_PUBLIC_API int rpmPubkeyFingerprint ( rpmPubkey key,
uint8_t ** fp,
size_t * fplen )

Return fingerprint of primary key

Parameters
keyPubkey
fpFingerprint data
fplenLength of Fingerprint
Returns
0 on success

◆ rpmPubkeyFingerprintAsHex()

RPM_PUBLIC_API const char * rpmPubkeyFingerprintAsHex ( rpmPubkey key)

Return fingerprint of primary key as hex string

Parameters
keyPubkey
Returns
string or NULL on failure

◆ rpmPubkeyFree()

RPM_PUBLIC_API rpmPubkey rpmPubkeyFree ( rpmPubkey key)

Free a pubkey.

Parameters
keyPubkey to free
Returns
NULL always

◆ rpmPubkeyKeyIDAsHex()

RPM_PUBLIC_API const char * rpmPubkeyKeyIDAsHex ( rpmPubkey key)

Return key ID of key as hex string

Parameters
keyPubkey
Returns
string or NULL on failure

◆ rpmPubkeyLink()

RPM_PUBLIC_API rpmPubkey rpmPubkeyLink ( rpmPubkey key)

Reference a pubkey.

Parameters
keyPubkey
Returns
new pubkey reference

◆ rpmPubkeyMerge()

RPM_PUBLIC_API rpmRC rpmPubkeyMerge ( rpmPubkey oldkey,
rpmPubkey newkey,
rpmPubkey * mergedkeyp )

Merge the data of two pubkeys describing the same key

Parameters
oldkeyold Pubkey
newkeynew Pubkey
mergedkeypmerged Pubkey, NULL if identical to old Pubkey
Returns
RPMRC_OK / RPMRC_FAIL

◆ rpmPubkeyNew()

RPM_PUBLIC_API rpmPubkey rpmPubkeyNew ( const uint8_t * pkt,
size_t pktlen )

Create a new rpmPubkey from OpenPGP packet

Parameters
pktOpenPGP packet data
pktlenData length
Returns
new pubkey handle

◆ rpmPubkeyPgpDigParams()

RPM_PUBLIC_API pgpDigParams rpmPubkeyPgpDigParams ( rpmPubkey key)

Return pgp params of key

Parameters
keyPubkey
Returns
pgp params, NULL on error

◆ rpmPubkeyRead()

RPM_PUBLIC_API rpmPubkey rpmPubkeyRead ( const char * filename)

Create a new rpmPubkey from ASCII-armored pubkey file

Parameters
filenamePath to pubkey file
Returns
new pubkey handle