1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#ifndef QCRYPTO_SECRET_COMMON_H
22#define QCRYPTO_SECRET_COMMON_H
23
24#include "qapi/qapi-types-crypto.h"
25#include "qom/object.h"
26
27#define TYPE_QCRYPTO_SECRET_COMMON "secret_common"
28OBJECT_DECLARE_TYPE(QCryptoSecretCommon, QCryptoSecretCommonClass,
29 QCRYPTO_SECRET_COMMON)
30
31
32struct QCryptoSecretCommon {
33 Object parent_obj;
34 uint8_t *rawdata;
35 size_t rawlen;
36 QCryptoSecretFormat format;
37 char *keyid;
38 char *iv;
39};
40
41
42struct QCryptoSecretCommonClass {
43 ObjectClass parent_class;
44 void (*load_data)(QCryptoSecretCommon *secret,
45 uint8_t **output,
46 size_t *outputlen,
47 Error **errp);
48};
49
50
51extern int qcrypto_secret_lookup(const char *secretid,
52 uint8_t **data,
53 size_t *datalen,
54 Error **errp);
55extern char *qcrypto_secret_lookup_as_utf8(const char *secretid,
56 Error **errp);
57extern char *qcrypto_secret_lookup_as_base64(const char *secretid,
58 Error **errp);
59
60#endif
61