xref: /openbmc/bmcweb/redfish-core/include/generated/enums/certificate.hpp (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace certificate
7 {
8 // clang-format off
9 
10 enum class CertificateType{
11     Invalid,
12     PEM,
13     PEMchain,
14     PKCS7,
15     PKCS12,
16 };
17 
18 enum class KeyUsage{
19     Invalid,
20     DigitalSignature,
21     NonRepudiation,
22     KeyEncipherment,
23     DataEncipherment,
24     KeyAgreement,
25     KeyCertSign,
26     CRLSigning,
27     EncipherOnly,
28     DecipherOnly,
29     ServerAuthentication,
30     ClientAuthentication,
31     CodeSigning,
32     EmailProtection,
33     Timestamping,
34     OCSPSigning,
35 };
36 
37 enum class CertificateUsageType{
38     Invalid,
39     User,
40     Web,
41     SSH,
42     Device,
43     Platform,
44     BIOS,
45     IDevID,
46     LDevID,
47     IAK,
48     LAK,
49     EK,
50 };
51 
52 NLOHMANN_JSON_SERIALIZE_ENUM(CertificateType, {
53     {CertificateType::Invalid, "Invalid"},
54     {CertificateType::PEM, "PEM"},
55     {CertificateType::PEMchain, "PEMchain"},
56     {CertificateType::PKCS7, "PKCS7"},
57     {CertificateType::PKCS12, "PKCS12"},
58 });
59 
60 NLOHMANN_JSON_SERIALIZE_ENUM(KeyUsage, {
61     {KeyUsage::Invalid, "Invalid"},
62     {KeyUsage::DigitalSignature, "DigitalSignature"},
63     {KeyUsage::NonRepudiation, "NonRepudiation"},
64     {KeyUsage::KeyEncipherment, "KeyEncipherment"},
65     {KeyUsage::DataEncipherment, "DataEncipherment"},
66     {KeyUsage::KeyAgreement, "KeyAgreement"},
67     {KeyUsage::KeyCertSign, "KeyCertSign"},
68     {KeyUsage::CRLSigning, "CRLSigning"},
69     {KeyUsage::EncipherOnly, "EncipherOnly"},
70     {KeyUsage::DecipherOnly, "DecipherOnly"},
71     {KeyUsage::ServerAuthentication, "ServerAuthentication"},
72     {KeyUsage::ClientAuthentication, "ClientAuthentication"},
73     {KeyUsage::CodeSigning, "CodeSigning"},
74     {KeyUsage::EmailProtection, "EmailProtection"},
75     {KeyUsage::Timestamping, "Timestamping"},
76     {KeyUsage::OCSPSigning, "OCSPSigning"},
77 });
78 
79 NLOHMANN_JSON_SERIALIZE_ENUM(CertificateUsageType, {
80     {CertificateUsageType::Invalid, "Invalid"},
81     {CertificateUsageType::User, "User"},
82     {CertificateUsageType::Web, "Web"},
83     {CertificateUsageType::SSH, "SSH"},
84     {CertificateUsageType::Device, "Device"},
85     {CertificateUsageType::Platform, "Platform"},
86     {CertificateUsageType::BIOS, "BIOS"},
87     {CertificateUsageType::IDevID, "IDevID"},
88     {CertificateUsageType::LDevID, "LDevID"},
89     {CertificateUsageType::IAK, "IAK"},
90     {CertificateUsageType::LAK, "LAK"},
91     {CertificateUsageType::EK, "EK"},
92 });
93 
94 }
95 // clang-format on
96