1 #pragma once 2 #include <nlohmann/json.hpp> 3 4 namespace aggregation_source 5 { 6 // clang-format off 7 8 enum class SNMPAuthenticationProtocols{ 9 Invalid, 10 None, 11 CommunityString, 12 HMAC_MD5, 13 HMAC_SHA96, 14 HMAC128_SHA224, 15 HMAC192_SHA256, 16 HMAC256_SHA384, 17 HMAC384_SHA512, 18 }; 19 20 enum class SNMPEncryptionProtocols{ 21 Invalid, 22 None, 23 CBC_DES, 24 CFB128_AES128, 25 }; 26 27 enum class AggregationType{ 28 Invalid, 29 NotificationsOnly, 30 Full, 31 }; 32 33 enum class UserAuthenticationMethod{ 34 Invalid, 35 PublicKey, 36 Password, 37 }; 38 39 enum class SSHKeyType{ 40 Invalid, 41 RSA, 42 DSA, 43 ECDSA, 44 Ed25519, 45 }; 46 47 enum class ECDSACurveType{ 48 Invalid, 49 NISTP256, 50 NISTP384, 51 NISTP521, 52 NISTK163, 53 NISTP192, 54 NISTP224, 55 NISTK233, 56 NISTB233, 57 NISTK283, 58 NISTK409, 59 NISTB409, 60 NISTT571, 61 }; 62 63 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 64 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 65 {SNMPAuthenticationProtocols::None, "None"}, 66 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 67 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 68 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 69 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 70 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 71 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 72 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 73 }); 74 75 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 76 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 77 {SNMPEncryptionProtocols::None, "None"}, 78 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 79 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 80 }); 81 82 NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, { 83 {AggregationType::Invalid, "Invalid"}, 84 {AggregationType::NotificationsOnly, "NotificationsOnly"}, 85 {AggregationType::Full, "Full"}, 86 }); 87 88 NLOHMANN_JSON_SERIALIZE_ENUM(UserAuthenticationMethod, { 89 {UserAuthenticationMethod::Invalid, "Invalid"}, 90 {UserAuthenticationMethod::PublicKey, "PublicKey"}, 91 {UserAuthenticationMethod::Password, "Password"}, 92 }); 93 94 NLOHMANN_JSON_SERIALIZE_ENUM(SSHKeyType, { 95 {SSHKeyType::Invalid, "Invalid"}, 96 {SSHKeyType::RSA, "RSA"}, 97 {SSHKeyType::DSA, "DSA"}, 98 {SSHKeyType::ECDSA, "ECDSA"}, 99 {SSHKeyType::Ed25519, "Ed25519"}, 100 }); 101 102 NLOHMANN_JSON_SERIALIZE_ENUM(ECDSACurveType, { 103 {ECDSACurveType::Invalid, "Invalid"}, 104 {ECDSACurveType::NISTP256, "NISTP256"}, 105 {ECDSACurveType::NISTP384, "NISTP384"}, 106 {ECDSACurveType::NISTP521, "NISTP521"}, 107 {ECDSACurveType::NISTK163, "NISTK163"}, 108 {ECDSACurveType::NISTP192, "NISTP192"}, 109 {ECDSACurveType::NISTP224, "NISTP224"}, 110 {ECDSACurveType::NISTK233, "NISTK233"}, 111 {ECDSACurveType::NISTB233, "NISTB233"}, 112 {ECDSACurveType::NISTK283, "NISTK283"}, 113 {ECDSACurveType::NISTK409, "NISTK409"}, 114 {ECDSACurveType::NISTB409, "NISTB409"}, 115 {ECDSACurveType::NISTT571, "NISTT571"}, 116 }); 117 118 } 119 // clang-format on 120