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