rpm  4.18.2
rpmcrypto.h
Go to the documentation of this file.
1 #ifndef _RPMCRYPTO_H
2 #define _RPMCRYPTO_H
3 
4 #include <rpm/rpmtypes.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
12 typedef struct DIGEST_CTX_s * DIGEST_CTX;
13 typedef struct rpmDigestBundle_s * rpmDigestBundle;
14 
19 typedef enum rpmHashAlgo_e {
30 } rpmHashAlgo;
31 
37 };
38 
40 
48 int rpmInitCrypto(void);
49 
53 int rpmFreeCrypto(void);
54 
60 DIGEST_CTX rpmDigestDup(DIGEST_CTX octx);
61 
67 size_t rpmDigestLength(int hashalgo);
68 
76 DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags);
77 
85 int rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len);
86 
98 int rpmDigestFinal(DIGEST_CTX ctx, void ** datap, size_t * lenp, int asAscii);
99 
104 rpmDigestBundle rpmDigestBundleNew(void);
105 
111 rpmDigestBundle rpmDigestBundleFree(rpmDigestBundle bundle);
112 
121 int rpmDigestBundleAdd(rpmDigestBundle bundle, int algo,
122  rpmDigestFlags flags);
123 
132 int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id,
133  rpmDigestFlags flags);
134 
142 int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len);
143 
154 int rpmDigestBundleFinal(rpmDigestBundle bundle, int id,
155  void ** datap, size_t * lenp, int asAscii);
156 
163 DIGEST_CTX rpmDigestBundleDupCtx(rpmDigestBundle bundle, int id);
164 
165 
166 #ifdef __cplusplus
167 }
168 #endif
169 
170 #endif /* _RPMCRYPTO_H */
int rpmFreeCrypto(void)
Shutdown cryptography.
DIGEST_CTX rpmDigestBundleDupCtx(rpmDigestBundle bundle, int id)
Duplicate a digest context from a bundle.
int rpmDigestFinal(DIGEST_CTX ctx, void **datap, size_t *lenp, int asAscii)
Return digest and destroy context.
int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id, rpmDigestFlags flags)
Add a new type of digest to a bundle.
rpmDigestBundle rpmDigestBundleNew(void)
Create a new digest bundle.
rpmFlags rpmDigestFlags
Definition: rpmcrypto.h:39
int rpmDigestUpdate(DIGEST_CTX ctx, const void *data, size_t len)
Update context with next plain text buffer.
Typedefs for RPM abstract data types.
int rpmInitCrypto(void)
Perform cryptography initialization.
uint32_t rpmFlags
Definition: rpmtypes.h:42
int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len)
Update contexts within bundle with next plain text buffer.
rpmHashAlgo_e
At this time these simply mirror PGPHASHALGO numbers.
Definition: rpmcrypto.h:19
rpmDigestBundle rpmDigestBundleFree(rpmDigestBundle bundle)
Free a digest bundle and all contained digest contexts.
int rpmDigestBundleFinal(rpmDigestBundle bundle, int id, void **datap, size_t *lenp, int asAscii)
Return digest from a bundle and destroy context, see rpmDigestFinal().
struct DIGEST_CTX_s * DIGEST_CTX
Definition: rpmcrypto.h:12
int rpmDigestBundleAdd(rpmDigestBundle bundle, int algo, rpmDigestFlags flags)
Add a new type of digest to a bundle.
DIGEST_CTX rpmDigestDup(DIGEST_CTX octx)
Duplicate a digest context.
struct rpmDigestBundle_s * rpmDigestBundle
Definition: rpmcrypto.h:13
rpmDigestFlags_e
Bit(s) to control digest operation.
Definition: rpmcrypto.h:35
enum rpmHashAlgo_e rpmHashAlgo
At this time these simply mirror PGPHASHALGO numbers.
size_t rpmDigestLength(int hashalgo)
Obtain digest length in bytes.
DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags)
Initialize digest.