xref: /openbmc/bmcweb/redfish-core/include/generated/enums/key.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
7 {
8 // clang-format off
9 
10 enum class SSHKeyType{
11     Invalid,
12     RSA,
13     DSA,
14     ECDSA,
15     Ed25519,
16 };
17 
18 enum class ECDSACurveType{
19     Invalid,
20     NISTP256,
21     NISTP384,
22     NISTP521,
23     NISTK163,
24     NISTP192,
25     NISTP224,
26     NISTK233,
27     NISTB233,
28     NISTK283,
29     NISTK409,
30     NISTB409,
31     NISTT571,
32 };
33 
34 enum class KeyType{
35     Invalid,
36     NVMeoF,
37     SSH,
38 };
39 
40 enum class NVMeoFSecurityProtocolType{
41     Invalid,
42     DHHC,
43     TLS_PSK,
44     OEM,
45 };
46 
47 enum class NVMeoFSecureHashType{
48     Invalid,
49     SHA256,
50     SHA384,
51     SHA512,
52 };
53 
54 NLOHMANN_JSON_SERIALIZE_ENUM(SSHKeyType, {
55     {SSHKeyType::Invalid, "Invalid"},
56     {SSHKeyType::RSA, "RSA"},
57     {SSHKeyType::DSA, "DSA"},
58     {SSHKeyType::ECDSA, "ECDSA"},
59     {SSHKeyType::Ed25519, "Ed25519"},
60 });
61 
62 NLOHMANN_JSON_SERIALIZE_ENUM(ECDSACurveType, {
63     {ECDSACurveType::Invalid, "Invalid"},
64     {ECDSACurveType::NISTP256, "NISTP256"},
65     {ECDSACurveType::NISTP384, "NISTP384"},
66     {ECDSACurveType::NISTP521, "NISTP521"},
67     {ECDSACurveType::NISTK163, "NISTK163"},
68     {ECDSACurveType::NISTP192, "NISTP192"},
69     {ECDSACurveType::NISTP224, "NISTP224"},
70     {ECDSACurveType::NISTK233, "NISTK233"},
71     {ECDSACurveType::NISTB233, "NISTB233"},
72     {ECDSACurveType::NISTK283, "NISTK283"},
73     {ECDSACurveType::NISTK409, "NISTK409"},
74     {ECDSACurveType::NISTB409, "NISTB409"},
75     {ECDSACurveType::NISTT571, "NISTT571"},
76 });
77 
78 NLOHMANN_JSON_SERIALIZE_ENUM(KeyType, {
79     {KeyType::Invalid, "Invalid"},
80     {KeyType::NVMeoF, "NVMeoF"},
81     {KeyType::SSH, "SSH"},
82 });
83 
84 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityProtocolType, {
85     {NVMeoFSecurityProtocolType::Invalid, "Invalid"},
86     {NVMeoFSecurityProtocolType::DHHC, "DHHC"},
87     {NVMeoFSecurityProtocolType::TLS_PSK, "TLS_PSK"},
88     {NVMeoFSecurityProtocolType::OEM, "OEM"},
89 });
90 
91 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecureHashType, {
92     {NVMeoFSecureHashType::Invalid, "Invalid"},
93     {NVMeoFSecureHashType::SHA256, "SHA256"},
94     {NVMeoFSecureHashType::SHA384, "SHA384"},
95     {NVMeoFSecureHashType::SHA512, "SHA512"},
96 });
97 
98 }
99 // clang-format on
100