| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | #pragma once#include <algorithm>#include <climits>#include <functional>#include <memory>#include <random>#include <vector>#include "Crypto.h"#include "Logger.h"#include "NanoPBHelper.h"#include "Utils.h"#include "protobuf/authentication.pb.h"#include "protobuf/keyexchange.pb.h"namespace cspot {class AuthChallenges { public:  AuthChallenges();  ~AuthChallenges();  std::vector<uint8_t> shanSendKey = {};  std::vector<uint8_t> shanRecvKey = {};  std::vector<uint8_t> prepareAuthPacket(std::vector<uint8_t>& authBlob,                                         int authType,                                         const std::string& deviceId,                                         const std::string& username);  std::vector<uint8_t> solveApHello(std::vector<uint8_t>& helloPacket,                                    std::vector<uint8_t>& data);  std::vector<uint8_t> prepareClientHello(); private:  const long long SPOTIFY_VERSION = 0x10800000000;  ClientResponseEncrypted authRequest;  ClientResponsePlaintext clientResPlaintext;  ClientHello clientHello;  APResponseMessage apResponse;  std::unique_ptr<Crypto> crypto;};}  // namespace cspot
 |