1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace key_policy 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class KeyPolicyType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous NVMeoF, 13853c0dc5SEd Tanous }; 14853c0dc5SEd Tanous 15853c0dc5SEd Tanous enum class NVMeoFSecurityProtocolType{ 16853c0dc5SEd Tanous Invalid, 17853c0dc5SEd Tanous DHHC, 18853c0dc5SEd Tanous TLS_PSK, 19853c0dc5SEd Tanous OEM, 20853c0dc5SEd Tanous }; 21853c0dc5SEd Tanous 22853c0dc5SEd Tanous enum class NVMeoFSecureHashType{ 23853c0dc5SEd Tanous Invalid, 24853c0dc5SEd Tanous SHA256, 25853c0dc5SEd Tanous SHA384, 26853c0dc5SEd Tanous SHA512, 27853c0dc5SEd Tanous }; 28853c0dc5SEd Tanous 29853c0dc5SEd Tanous enum class NVMeoFSecurityTransportType{ 30853c0dc5SEd Tanous Invalid, 31853c0dc5SEd Tanous TLSv2, 32853c0dc5SEd Tanous TLSv3, 33853c0dc5SEd Tanous }; 34853c0dc5SEd Tanous 35853c0dc5SEd Tanous enum class NVMeoFCipherSuiteType{ 36853c0dc5SEd Tanous Invalid, 37853c0dc5SEd Tanous TLS_AES_128_GCM_SHA256, 38853c0dc5SEd Tanous TLS_AES_256_GCM_SHA384, 39853c0dc5SEd Tanous }; 40853c0dc5SEd Tanous 41853c0dc5SEd Tanous enum class NVMeoFDHGroupType{ 42853c0dc5SEd Tanous Invalid, 43853c0dc5SEd Tanous FFDHE2048, 44853c0dc5SEd Tanous FFDHE3072, 45853c0dc5SEd Tanous FFDHE4096, 46853c0dc5SEd Tanous FFDHE6144, 47853c0dc5SEd Tanous FFDHE8192, 48853c0dc5SEd Tanous }; 49853c0dc5SEd Tanous 50853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(KeyPolicyType, { 51853c0dc5SEd Tanous {KeyPolicyType::Invalid, "Invalid"}, 52853c0dc5SEd Tanous {KeyPolicyType::NVMeoF, "NVMeoF"}, 53853c0dc5SEd Tanous }); 54853c0dc5SEd Tanous 55853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityProtocolType, { 56853c0dc5SEd Tanous {NVMeoFSecurityProtocolType::Invalid, "Invalid"}, 57853c0dc5SEd Tanous {NVMeoFSecurityProtocolType::DHHC, "DHHC"}, 58853c0dc5SEd Tanous {NVMeoFSecurityProtocolType::TLS_PSK, "TLS_PSK"}, 59853c0dc5SEd Tanous {NVMeoFSecurityProtocolType::OEM, "OEM"}, 60853c0dc5SEd Tanous }); 61853c0dc5SEd Tanous 62853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecureHashType, { 63853c0dc5SEd Tanous {NVMeoFSecureHashType::Invalid, "Invalid"}, 64853c0dc5SEd Tanous {NVMeoFSecureHashType::SHA256, "SHA256"}, 65853c0dc5SEd Tanous {NVMeoFSecureHashType::SHA384, "SHA384"}, 66853c0dc5SEd Tanous {NVMeoFSecureHashType::SHA512, "SHA512"}, 67853c0dc5SEd Tanous }); 68853c0dc5SEd Tanous 69853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFSecurityTransportType, { 70853c0dc5SEd Tanous {NVMeoFSecurityTransportType::Invalid, "Invalid"}, 71853c0dc5SEd Tanous {NVMeoFSecurityTransportType::TLSv2, "TLSv2"}, 72853c0dc5SEd Tanous {NVMeoFSecurityTransportType::TLSv3, "TLSv3"}, 73853c0dc5SEd Tanous }); 74853c0dc5SEd Tanous 75853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFCipherSuiteType, { 76853c0dc5SEd Tanous {NVMeoFCipherSuiteType::Invalid, "Invalid"}, 77853c0dc5SEd Tanous {NVMeoFCipherSuiteType::TLS_AES_128_GCM_SHA256, "TLS_AES_128_GCM_SHA256"}, 78853c0dc5SEd Tanous {NVMeoFCipherSuiteType::TLS_AES_256_GCM_SHA384, "TLS_AES_256_GCM_SHA384"}, 79853c0dc5SEd Tanous }); 80853c0dc5SEd Tanous 81853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeoFDHGroupType, { 82853c0dc5SEd Tanous {NVMeoFDHGroupType::Invalid, "Invalid"}, 83853c0dc5SEd Tanous {NVMeoFDHGroupType::FFDHE2048, "FFDHE2048"}, 84853c0dc5SEd Tanous {NVMeoFDHGroupType::FFDHE3072, "FFDHE3072"}, 85853c0dc5SEd Tanous {NVMeoFDHGroupType::FFDHE4096, "FFDHE4096"}, 86853c0dc5SEd Tanous {NVMeoFDHGroupType::FFDHE6144, "FFDHE6144"}, 87853c0dc5SEd Tanous {NVMeoFDHGroupType::FFDHE8192, "FFDHE8192"}, 88853c0dc5SEd Tanous }); 89853c0dc5SEd Tanous 90853c0dc5SEd Tanous } 91853c0dc5SEd Tanous // clang-format on 92