| #pragma once |
| #include <cstdint> |
| #include <nlohmann/json.hpp> |
| |
| namespace key_policy |
| { |
| // clang-format off |
| |
| enum class KeyPolicyType : std::uint8_t{ |
| Invalid, |
| NVMeoF, |
| }; |
| |
| enum class NVMeoFSecurityProtocolType : std::uint8_t{ |
| Invalid, |
| DHHC, |
| TLS_PSK, |
| OEM, |
| }; |
| |
| enum class NVMeoFSecureHashType : std::uint8_t{ |
| Invalid, |
| SHA256, |
| SHA384, |
| SHA512, |
| }; |
| |
| enum class NVMeoFSecurityTransportType : std::uint8_t{ |
| Invalid, |
| TLSv2, |
| TLSv3, |
| }; |
| |
| enum class NVMeoFCipherSuiteType : std::uint8_t{ |
| Invalid, |
| TLS_AES_128_GCM_SHA256, |
| TLS_AES_256_GCM_SHA384, |
| }; |
| |
| enum class NVMeoFDHGroupType : std::uint8_t{ |
| Invalid, |
| FFDHE2048, |
| FFDHE3072, |
| FFDHE4096, |
| FFDHE6144, |
| FFDHE8192, |
| }; |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(KeyPolicyType, { |
| {KeyPolicyType::Invalid, "Invalid"}, |
| {KeyPolicyType::NVMeoF, "NVMeoF"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityProtocolType, { |
| {NVMeoFSecurityProtocolType::Invalid, "Invalid"}, |
| {NVMeoFSecurityProtocolType::DHHC, "DHHC"}, |
| {NVMeoFSecurityProtocolType::TLS_PSK, "TLS_PSK"}, |
| {NVMeoFSecurityProtocolType::OEM, "OEM"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecureHashType, { |
| {NVMeoFSecureHashType::Invalid, "Invalid"}, |
| {NVMeoFSecureHashType::SHA256, "SHA256"}, |
| {NVMeoFSecureHashType::SHA384, "SHA384"}, |
| {NVMeoFSecureHashType::SHA512, "SHA512"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityTransportType, { |
| {NVMeoFSecurityTransportType::Invalid, "Invalid"}, |
| {NVMeoFSecurityTransportType::TLSv2, "TLSv2"}, |
| {NVMeoFSecurityTransportType::TLSv3, "TLSv3"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFCipherSuiteType, { |
| {NVMeoFCipherSuiteType::Invalid, "Invalid"}, |
| {NVMeoFCipherSuiteType::TLS_AES_128_GCM_SHA256, "TLS_AES_128_GCM_SHA256"}, |
| {NVMeoFCipherSuiteType::TLS_AES_256_GCM_SHA384, "TLS_AES_256_GCM_SHA384"}, |
| }); |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFDHGroupType, { |
| {NVMeoFDHGroupType::Invalid, "Invalid"}, |
| {NVMeoFDHGroupType::FFDHE2048, "FFDHE2048"}, |
| {NVMeoFDHGroupType::FFDHE3072, "FFDHE3072"}, |
| {NVMeoFDHGroupType::FFDHE4096, "FFDHE4096"}, |
| {NVMeoFDHGroupType::FFDHE6144, "FFDHE6144"}, |
| {NVMeoFDHGroupType::FFDHE8192, "FFDHE8192"}, |
| }); |
| |
| } // namespace key_policy |
| // clang-format on |