master
h 38 lines 921 Bytes
Raw
1 /*
2 * S390 certificate store
3 *
4 * Copyright 2025 IBM Corp.
5 * Author(s): Zhuoying Cai <zycai@linux.ibm.com>
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
9
10 #ifndef HW_S390_CERT_STORE_H
11 #define HW_S390_CERT_STORE_H
12
13 #include "hw/s390x/ipl/qipl.h"
14 #include "hw/s390x/ipl/diag320.h"
15 #include "crypto/x509-utils.h"
16
17 #define CERT_KEY_ID_LEN QCRYPTO_HASH_DIGEST_LEN_SHA256
18 #define CERT_HASH_LEN QCRYPTO_HASH_DIGEST_LEN_SHA256
19
20 struct S390IPLCertificate {
21 uint8_t name[CERT_NAME_MAX_LEN];
22 size_t size;
23 size_t der_size;
24 uint8_t *raw;
25 };
26 typedef struct S390IPLCertificate S390IPLCertificate;
27
28 struct S390IPLCertificateStore {
29 uint16_t count;
30 size_t largest_cert_size;
31 size_t total_bytes;
32 S390IPLCertificate certs[MAX_CERTIFICATES];
33 };
34 typedef struct S390IPLCertificateStore S390IPLCertificateStore;
35
36 void s390_ipl_create_cert_store(S390IPLCertificateStore *cert_store);
37
38 #endif