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