1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace key
5 {
6 // clang-format off
7 
8 enum class KeyType{
9     Invalid,
10     NVMeoF,
11     SSH,
12 };
13 
14 enum class NVMeoFSecurityProtocolType{
15     Invalid,
16     DHHC,
17     TLS_PSK,
18     OEM,
19 };
20 
21 enum class NVMeoFSecureHashType{
22     Invalid,
23     SHA256,
24     SHA384,
25     SHA512,
26 };
27 
28 NLOHMANN_JSON_SERIALIZE_ENUM(KeyType, {
29     {KeyType::Invalid, "Invalid"},
30     {KeyType::NVMeoF, "NVMeoF"},
31     {KeyType::SSH, "SSH"},
32 });
33 
34 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityProtocolType, {
35     {NVMeoFSecurityProtocolType::Invalid, "Invalid"},
36     {NVMeoFSecurityProtocolType::DHHC, "DHHC"},
37     {NVMeoFSecurityProtocolType::TLS_PSK, "TLS_PSK"},
38     {NVMeoFSecurityProtocolType::OEM, "OEM"},
39 });
40 
41 NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecureHashType, {
42     {NVMeoFSecureHashType::Invalid, "Invalid"},
43     {NVMeoFSecureHashType::SHA256, "SHA256"},
44     {NVMeoFSecureHashType::SHA384, "SHA384"},
45     {NVMeoFSecureHashType::SHA512, "SHA512"},
46 });
47 
48 }
49 // clang-format on
50