xref: /openbmc/bmcweb/redfish-core/include/generated/enums/certificate.hpp (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
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 CertificateUsageType{
19     Invalid,
20     User,
21     Web,
22     SSH,
23     Device,
24     Platform,
25     BIOS,
26     IDevID,
27     LDevID,
28     IAK,
29     LAK,
30     EK,
31 };
32 
33 enum class KeyUsage{
34     Invalid,
35     DigitalSignature,
36     NonRepudiation,
37     KeyEncipherment,
38     DataEncipherment,
39     KeyAgreement,
40     KeyCertSign,
41     CRLSigning,
42     EncipherOnly,
43     DecipherOnly,
44     ServerAuthentication,
45     ClientAuthentication,
46     CodeSigning,
47     EmailProtection,
48     Timestamping,
49     OCSPSigning,
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(CertificateUsageType, {
61     {CertificateUsageType::Invalid, "Invalid"},
62     {CertificateUsageType::User, "User"},
63     {CertificateUsageType::Web, "Web"},
64     {CertificateUsageType::SSH, "SSH"},
65     {CertificateUsageType::Device, "Device"},
66     {CertificateUsageType::Platform, "Platform"},
67     {CertificateUsageType::BIOS, "BIOS"},
68     {CertificateUsageType::IDevID, "IDevID"},
69     {CertificateUsageType::LDevID, "LDevID"},
70     {CertificateUsageType::IAK, "IAK"},
71     {CertificateUsageType::LAK, "LAK"},
72     {CertificateUsageType::EK, "EK"},
73 });
74 
75 NLOHMANN_JSON_SERIALIZE_ENUM(KeyUsage, {
76     {KeyUsage::Invalid, "Invalid"},
77     {KeyUsage::DigitalSignature, "DigitalSignature"},
78     {KeyUsage::NonRepudiation, "NonRepudiation"},
79     {KeyUsage::KeyEncipherment, "KeyEncipherment"},
80     {KeyUsage::DataEncipherment, "DataEncipherment"},
81     {KeyUsage::KeyAgreement, "KeyAgreement"},
82     {KeyUsage::KeyCertSign, "KeyCertSign"},
83     {KeyUsage::CRLSigning, "CRLSigning"},
84     {KeyUsage::EncipherOnly, "EncipherOnly"},
85     {KeyUsage::DecipherOnly, "DecipherOnly"},
86     {KeyUsage::ServerAuthentication, "ServerAuthentication"},
87     {KeyUsage::ClientAuthentication, "ClientAuthentication"},
88     {KeyUsage::CodeSigning, "CodeSigning"},
89     {KeyUsage::EmailProtection, "EmailProtection"},
90     {KeyUsage::Timestamping, "Timestamping"},
91     {KeyUsage::OCSPSigning, "OCSPSigning"},
92 });
93 
94 }
95 // clang-format on
96