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