xref: /openbmc/bmcweb/redfish-core/include/generated/enums/key_policy.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace key_policy
7 {
8 // clang-format off
9 
10 enum class KeyPolicyType{
11     Invalid,
12     NVMeoF,
13 };
14 
15 enum class NVMeoFSecurityProtocolType{
16     Invalid,
17     DHHC,
18     TLS_PSK,
19     OEM,
20 };
21 
22 enum class NVMeoFSecureHashType{
23     Invalid,
24     SHA256,
25     SHA384,
26     SHA512,
27 };
28 
29 enum class NVMeoFSecurityTransportType{
30     Invalid,
31     TLSv2,
32     TLSv3,
33 };
34 
35 enum class NVMeoFCipherSuiteType{
36     Invalid,
37     TLS_AES_128_GCM_SHA256,
38     TLS_AES_256_GCM_SHA384,
39 };
40 
41 enum class NVMeoFDHGroupType{
42     Invalid,
43     FFDHE2048,
44     FFDHE3072,
45     FFDHE4096,
46     FFDHE6144,
47     FFDHE8192,
48 };
49 
50 NLOHMANN_JSON_SERIALIZE_ENUM(KeyPolicyType, {
51     {KeyPolicyType::Invalid, "Invalid"},
52     {KeyPolicyType::NVMeoF, "NVMeoF"},
53 });
54 
55 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityProtocolType, {
56     {NVMeoFSecurityProtocolType::Invalid, "Invalid"},
57     {NVMeoFSecurityProtocolType::DHHC, "DHHC"},
58     {NVMeoFSecurityProtocolType::TLS_PSK, "TLS_PSK"},
59     {NVMeoFSecurityProtocolType::OEM, "OEM"},
60 });
61 
62 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecureHashType, {
63     {NVMeoFSecureHashType::Invalid, "Invalid"},
64     {NVMeoFSecureHashType::SHA256, "SHA256"},
65     {NVMeoFSecureHashType::SHA384, "SHA384"},
66     {NVMeoFSecureHashType::SHA512, "SHA512"},
67 });
68 
69 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityTransportType, {
70     {NVMeoFSecurityTransportType::Invalid, "Invalid"},
71     {NVMeoFSecurityTransportType::TLSv2, "TLSv2"},
72     {NVMeoFSecurityTransportType::TLSv3, "TLSv3"},
73 });
74 
75 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFCipherSuiteType, {
76     {NVMeoFCipherSuiteType::Invalid, "Invalid"},
77     {NVMeoFCipherSuiteType::TLS_AES_128_GCM_SHA256, "TLS_AES_128_GCM_SHA256"},
78     {NVMeoFCipherSuiteType::TLS_AES_256_GCM_SHA384, "TLS_AES_256_GCM_SHA384"},
79 });
80 
81 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFDHGroupType, {
82     {NVMeoFDHGroupType::Invalid, "Invalid"},
83     {NVMeoFDHGroupType::FFDHE2048, "FFDHE2048"},
84     {NVMeoFDHGroupType::FFDHE3072, "FFDHE3072"},
85     {NVMeoFDHGroupType::FFDHE4096, "FFDHE4096"},
86     {NVMeoFDHGroupType::FFDHE6144, "FFDHE6144"},
87     {NVMeoFDHGroupType::FFDHE8192, "FFDHE8192"},
88 });
89 
90 }
91 // clang-format on
92