xref: /openbmc/qemu/include/crypto/secret_keyring.h (revision 54e7aac0562452e4fcab65ca5001d030eef2de15)
1*54e7aac0SAlexey Krasikov /*
2*54e7aac0SAlexey Krasikov  * QEMU crypto secret support
3*54e7aac0SAlexey Krasikov  *
4*54e7aac0SAlexey Krasikov  * Copyright 2020 Yandex N.V.
5*54e7aac0SAlexey Krasikov  *
6*54e7aac0SAlexey Krasikov  * This library is free software; you can redistribute it and/or
7*54e7aac0SAlexey Krasikov  * modify it under the terms of the GNU Lesser General Public
8*54e7aac0SAlexey Krasikov  * License as published by the Free Software Foundation; either
9*54e7aac0SAlexey Krasikov  * version 2.1 of the License, or (at your option) any later version.
10*54e7aac0SAlexey Krasikov  *
11*54e7aac0SAlexey Krasikov  * This library is distributed in the hope that it will be useful,
12*54e7aac0SAlexey Krasikov  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*54e7aac0SAlexey Krasikov  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14*54e7aac0SAlexey Krasikov  * Lesser General Public License for more details.
15*54e7aac0SAlexey Krasikov  *
16*54e7aac0SAlexey Krasikov  * You should have received a copy of the GNU Lesser General Public
17*54e7aac0SAlexey Krasikov  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18*54e7aac0SAlexey Krasikov  *
19*54e7aac0SAlexey Krasikov  */
20*54e7aac0SAlexey Krasikov 
21*54e7aac0SAlexey Krasikov #ifndef QCRYPTO_SECRET_KEYRING_H
22*54e7aac0SAlexey Krasikov #define QCRYPTO_SECRET_KEYRING_H
23*54e7aac0SAlexey Krasikov 
24*54e7aac0SAlexey Krasikov #include "qapi/qapi-types-crypto.h"
25*54e7aac0SAlexey Krasikov #include "qom/object.h"
26*54e7aac0SAlexey Krasikov #include "crypto/secret_common.h"
27*54e7aac0SAlexey Krasikov 
28*54e7aac0SAlexey Krasikov #define TYPE_QCRYPTO_SECRET_KEYRING "secret_keyring"
29*54e7aac0SAlexey Krasikov #define QCRYPTO_SECRET_KEYRING(obj) \
30*54e7aac0SAlexey Krasikov     OBJECT_CHECK(QCryptoSecretKeyring, (obj), \
31*54e7aac0SAlexey Krasikov                  TYPE_QCRYPTO_SECRET_KEYRING)
32*54e7aac0SAlexey Krasikov #define QCRYPTO_SECRET_KEYRING_CLASS(class) \
33*54e7aac0SAlexey Krasikov     OBJECT_CLASS_CHECK(QCryptoSecretKeyringClass, \
34*54e7aac0SAlexey Krasikov                        (class), TYPE_QCRYPTO_SECRET_KEYRING)
35*54e7aac0SAlexey Krasikov #define QCRYPTO_SECRET_KEYRING_GET_CLASS(class) \
36*54e7aac0SAlexey Krasikov     OBJECT_GET_CLASS(QCryptoSecretKeyringClass, \
37*54e7aac0SAlexey Krasikov                      (class), TYPE_QCRYPTO_SECRET_KEYRING)
38*54e7aac0SAlexey Krasikov 
39*54e7aac0SAlexey Krasikov typedef struct QCryptoSecretKeyring QCryptoSecretKeyring;
40*54e7aac0SAlexey Krasikov typedef struct QCryptoSecretKeyringClass QCryptoSecretKeyringClass;
41*54e7aac0SAlexey Krasikov 
42*54e7aac0SAlexey Krasikov typedef struct QCryptoSecretKeyring {
43*54e7aac0SAlexey Krasikov     QCryptoSecretCommon parent;
44*54e7aac0SAlexey Krasikov     int32_t serial;
45*54e7aac0SAlexey Krasikov } QCryptoSecretKeyring;
46*54e7aac0SAlexey Krasikov 
47*54e7aac0SAlexey Krasikov 
48*54e7aac0SAlexey Krasikov typedef struct QCryptoSecretKeyringClass {
49*54e7aac0SAlexey Krasikov     QCryptoSecretCommonClass parent;
50*54e7aac0SAlexey Krasikov } QCryptoSecretKeyringClass;
51*54e7aac0SAlexey Krasikov 
52*54e7aac0SAlexey Krasikov #endif /* QCRYPTO_SECRET_KEYRING_H */
53