blob: 9fcab5feb63e0abcd9d88bbbe2e73e74b4b4d06c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#ifndef _RPMKEYRING_H
#define _RPMKEYRING_H
/** \ingroup rpmkeyring
* \file rpmio/rpmkeyring.h
*/
#include <rpm/rpmtypes.h>
#include <rpm/rpmpgp.h>
#ifdef __cplusplus
extern "C" {
#endif
/** \ingroup rpmkeyring
* Create a new, empty keyring
* @return new keyring handle
*/
rpmKeyring rpmKeyringNew(void);
/** \ingroup rpmkeyring
* Free keyring and the keys within it
* @return NULL always
*/
rpmKeyring rpmKeyringFree(rpmKeyring keyring);
/** \ingroup rpmkeyring
* Add a public key to keyring.
* @param keyring keyring handle
* @param key pubkey handle
* @return 0 on success, -1 on error, 1 if key already present
*/
int rpmKeyringAddKey(rpmKeyring keyring, rpmPubkey key);
/** \ingroup rpmkeyring
* Perform keyring lookup for a key matching a signature
* @param keyring keyring handle
* @param sig OpenPGP packet container of signature
* @return RPMRC_OK if found, RPMRC_NOKEY otherwise
*/
rpmRC rpmKeyringLookup(rpmKeyring keyring, pgpDig sig);
/** \ingroup rpmkeyring
* Perform combined keyring lookup and signature verification
* @param keyring keyring handle
* @param sig OpenPGP signature parameters
* @param ctx signature hash context
* @return RPMRC_OK / RPMRC_FAIL / RPMRC_NOKEY
*/
rpmRC rpmKeyringVerifySig(rpmKeyring keyring, pgpDigParams sig, DIGEST_CTX ctx);
/** \ingroup rpmkeyring
* Reference a keyring.
* @param keyring keyring handle
* @return new keyring reference
*/
rpmKeyring rpmKeyringLink(rpmKeyring keyring);
/** \ingroup rpmkeyring
* Create a new rpmPubkey from OpenPGP packet
* @param pkt OpenPGP packet data
* @param pktlen Data length
* @return new pubkey handle
*/
rpmPubkey rpmPubkeyNew(const uint8_t *pkt, size_t pktlen);
/** \ingroup rpmkeyring
* Create a new rpmPubkey from ASCII-armored pubkey file
* @param filename Path to pubkey file
* @return new pubkey handle
*/
rpmPubkey rpmPubkeyRead(const char *filename);
/** \ingroup rpmkeyring
* Free a pubkey.
* @param key Pubkey to free
* @return NULL always
*/
rpmPubkey rpmPubkeyFree(rpmPubkey key);
/** \ingroup rpmkeyring
* Reference a pubkey.
* @param key Pubkey
* @return new pubkey reference
*/
rpmPubkey rpmPubkeyLink(rpmPubkey key);
/** \ingroup rpmkeyring
* Parse OpenPGP pubkey parameters.
* @param key Pubkey
* @return parsed output of pubkey packet parameters
*/
pgpDig rpmPubkeyDig(rpmPubkey key);
/** \ingroup rpmkeyring
* Return base64 encoding of pubkey
* @param key Pubkey
* @return base64 encoded pubkey (malloced), NULL on error
*/
char * rpmPubkeyBase64(rpmPubkey key);
#ifdef __cplusplus
}
#endif
#endif /* _RPMKEYDB_H */
|