#pragma once #include // for uint8_t #include // for shared_ptr, unique_ptr #include // for string #include // for vector namespace cspot { class AuthChallenges; class LoginBlob; class PlainConnection; class ShannonConnection; } // namespace cspot #define LOGIN_REQUEST_COMMAND 0xAB #define AUTH_SUCCESSFUL_COMMAND 0xAC #define AUTH_DECLINED_COMMAND 0xAD namespace cspot { class Session { protected: std::unique_ptr challenges; std::shared_ptr conn; std::shared_ptr authBlob; std::string deviceId = "142137fd329622137a14901634264e6f332e2411"; public: Session(); ~Session(); std::shared_ptr shanConn; void connect(std::unique_ptr connection); void connectWithRandomAp(); void close(); virtual bool triggerTimeout() = 0; std::vector authenticate(std::shared_ptr blob); }; } // namespace cspot