@@ -741,6 +741,7 @@ struct WOLFSSH {
741741 byte isKeying ;
742742 byte authId ; /* if using public key or password */
743743 byte supportedAuth [4 ]; /* supported auth IDs public key , password */
744+ byte service ;
744745
745746#ifdef WOLFSSH_SCP
746747 byte scpState ;
@@ -1178,6 +1179,13 @@ enum ProcessReplyStates {
11781179};
11791180
11801181
1182+ enum WS_ServiceTypes {
1183+ SVC_NONE ,
1184+ SVC_USERAUTH ,
1185+ SVC_CONNECTION ,
1186+ };
1187+
1188+
11811189enum WS_MessageIds {
11821190 MSGID_NONE = 0 ,
11831191 MSGID_DISCONNECT = 1 ,
@@ -1249,6 +1257,55 @@ enum WS_MessageIds {
12491257 * user auth messages, it sends them. (>50) */
12501258#define MSGID_USERAUTH_RESTRICT 50
12511259
1260+ /* The following message ID ranges are described in RFC 5251, section 7. */
1261+ enum WS_MessageIdLimits {
1262+ /* Transport Layer Protocol: */
1263+ MSGIDLIMIT_TRANS_MIN = 1 ,
1264+ MSGIDLIMIT_TRANS_GEN_MIN = 1 ,
1265+ MSGIDLIMIT_TRANS_GEN_MAX = 19 ,
1266+ MSGIDLIMIT_TRANS_ALGO_MIN = 20 ,
1267+ MSGIDLIMIT_TRANS_ALGO_MAX = 29 ,
1268+ MSGIDLIMIT_TRANS_KEX_MIN = 30 ,
1269+ MSGIDLIMIT_TRANS_KEX_MAX = 49 ,
1270+ MSGIDLIMIT_TRANS_MAX = 49 ,
1271+ /* User Authentication Protocol: */
1272+ MSGIDLIMIT_AUTH_MIN = 50 ,
1273+ MSGIDLIMIT_AUTH_GEN_MIN = 50 ,
1274+ MSGIDLIMIT_AUTH_GEN_MAX = 59 ,
1275+ MSGIDLIMIT_AUTH_METH_MIN = 60 ,
1276+ MSGIDLIMIT_AUTH_METH_MAX = 79 ,
1277+ MSGIDLIMIT_AUTH_MAX = 79 ,
1278+ /* Connection Protocol: */
1279+ MSGIDLIMIT_CONN_MIN = 80 ,
1280+ MSGIDLIMIT_CONN_GEN_MIN = 80 ,
1281+ MSGIDLIMIT_CONN_GEN_MAX = 89 ,
1282+ MSGIDLIMIT_CONN_CHAN_MIN = 90 ,
1283+ MSGIDLIMIT_CONN_CHAN_MAX = 127 ,
1284+ MSGIDLIMIT_CONN_MAX = 127 ,
1285+ /* Reserved For Client Protocols: */
1286+ MSGIDLIMIT_RESERVED_MIN = 128 ,
1287+ MSGIDLIMIT_RESERVED_MAX = 191 ,
1288+ /* Local Extensions: */
1289+ MSGIDLIMIT_EXTENDED_MIN = 192 ,
1290+ MSGIDLIMIT_EXTENDED_MAX = 255 ,
1291+ };
1292+
1293+ /* Message ID bounds checking. */
1294+ #define MSGIDLIMIT_BOUND (x ,name ) \
1295+ ((x) >= (MSGIDLIMIT_##name##_MIN) && (x) <= MSGIDLIMIT_##name##_MAX)
1296+ #define MSGIDLIMIT_TRANS (x ) MSGIDLIMIT_BOUND((x),TRANS)
1297+ #define MSGIDLIMIT_TRANS_GEN (x ) MSGIDLIMIT_BOUND((x),TRANS_GEN)
1298+ #define MSGIDLIMIT_TRANS_ALGO (x ) MSGIDLIMIT_BOUND((x),TRANS_ALGO)
1299+ #define MSGIDLIMIT_TRANS_KEX (x ) MSGIDLIMIT_BOUND((x),TRANS_KEX)
1300+ #define MSGIDLIMIT_AUTH (x ) MSGIDLIMIT_BOUND((x),AUTH)
1301+ #define MSGIDLIMIT_AUTH_GEN (x ) MSGIDLIMIT_BOUND((x),AUTH_GEN)
1302+ #define MSGIDLIMIT_AUTH_METH (x ) MSGIDLIMIT_BOUND((x),AUTH_METH)
1303+ #define MSGIDLIMIT_CONN (x ) MSGIDLIMIT_BOUND((x),CONN)
1304+ #define MSGIDLIMIT_CONN_GEN (x ) MSGIDLIMIT_BOUND((x),CONN_GEN)
1305+ #define MSGIDLIMIT_CONN_CHAN (x ) MSGIDLIMIT_BOUND((x),CONN_CHAN)
1306+ #define MSGIDLIMIT_RESERVED (x ) MSGIDLIMIT_BOUND((x),RESERVED)
1307+ #define MSGIDLIMIT_EXTENDED (x ) MSGIDLIMIT_BOUND((x),EXTENDED)
1308+
12521309
12531310#define CHANNEL_EXTENDED_DATA_STDERR WOLFSSH_EXT_DATA_STDERR
12541311
0 commit comments