| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 | 
							- // AUTOGENERATED FILE, DO NOT EDIT BY HAND
 
- #ifndef PB_KEYEXCHANGE_H
 
- #define PB_KEYEXCHANGE_H
 
- #include <memory>
 
- #include <vector>
 
- #include <PbCommon.h>
 
- #include <PbWriter.h>
 
- #include <PbReader.h>
 
- enum class Product : uint32_t {
 
-     PRODUCT_CLIENT = 0,
 
-     PRODUCT_LIBSPOTIFY = 1,
 
-     PRODUCT_MOBILE = 2,
 
-     PRODUCT_PARTNER = 3,
 
-     PRODUCT_LIBSPOTIFY_EMBEDDED = 5
 
- };
 
- enum class Platform : uint32_t {
 
-     PLATFORM_WIN32_X86 = 0,
 
-     PLATFORM_OSX_X86 = 1,
 
-     PLATFORM_LINUX_X86 = 2,
 
-     PLATFORM_IPHONE_ARM = 3,
 
-     PLATFORM_S60_ARM = 4,
 
-     PLATFORM_OSX_PPC = 5,
 
-     PLATFORM_ANDROID_ARM = 6,
 
-     PLATFORM_WINDOWS_CE_ARM = 7,
 
-     PLATFORM_LINUX_X86_64 = 8,
 
-     PLATFORM_OSX_X86_64 = 9,
 
-     PLATFORM_PALM_ARM = 10,
 
-     PLATFORM_LINUX_SH = 11,
 
-     PLATFORM_FREEBSD_X86 = 12,
 
-     PLATFORM_FREEBSD_X86_64 = 13,
 
-     PLATFORM_BLACKBERRY_ARM = 14,
 
-     PLATFORM_SONOS = 15,
 
-     PLATFORM_LINUX_MIPS = 16,
 
-     PLATFORM_LINUX_ARM = 17,
 
-     PLATFORM_LOGITECH_ARM = 18,
 
-     PLATFORM_LINUX_BLACKFIN = 19,
 
-     PLATFORM_WP7_ARM = 20,
 
-     PLATFORM_ONKYO_ARM = 21,
 
-     PLATFORM_QNXNTO_ARM = 22,
 
-     PLATFORM_BCO_ARM = 23
 
- };
 
- enum class Cryptosuite : uint32_t {
 
-     CRYPTO_SUITE_SHANNON = 0,
 
-     CRYPTO_SUITE_RC4_SHA1_HMAC = 1
 
- };
 
- class LoginCryptoDiffieHellmanChallenge : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoDiffieHellmanChallenge() {};
 
-     std::vector<uint8_t> gs;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             reader->decodeVector(gs);
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         writer->addVector(10, gs);
 
-     }
 
- };
 
- class LoginCryptoChallengeUnion : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoChallengeUnion() {};
 
-     LoginCryptoDiffieHellmanChallenge diffie_hellman;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             diffie_hellman.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         diffie_hellman.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-     }
 
- };
 
- class LoginCryptoDiffieHellmanHello : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoDiffieHellmanHello() {};
 
-     std::vector<uint8_t> gc;
 
-     uint32_t server_keys_known;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             reader->decodeVector(gc);
 
-             break;
 
-         case 20:
 
-             server_keys_known = reader->decodeVarInt<uint32_t>();
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         writer->addVector(10, gc);
 
-         writer->addVarInt(20, server_keys_known);
 
-     }
 
- };
 
- class LoginCryptoHelloUnion : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoHelloUnion() {};
 
-     LoginCryptoDiffieHellmanHello diffie_hellman;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             diffie_hellman.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         diffie_hellman.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-     }
 
- };
 
- class BuildInfo : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     BuildInfo() {};
 
-     Product product;
 
-     Platform platform;
 
-     uint64_t version;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             product = static_cast<Product>(reader->decodeVarInt<uint32_t>());
 
-             break;
 
-         case 30:
 
-             platform = static_cast<Platform>(reader->decodeVarInt<uint32_t>());
 
-             break;
 
-         case 40:
 
-             version = reader->decodeVarInt<uint64_t>();
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         writer->addVarInt(10, static_cast<uint32_t>(product));
 
-         writer->addVarInt(30, static_cast<uint32_t>(platform));
 
-         writer->addVarInt(40, version);
 
-     }
 
- };
 
- class FeatureSet : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     FeatureSet() {};
 
-     bool autoupdate2;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 1:
 
-             autoupdate2 = reader->decodeVarInt<bool>();
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         writer->addVarInt(1, autoupdate2);
 
-     }
 
- };
 
- class APChallenge : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     APChallenge() {};
 
-     LoginCryptoChallengeUnion login_crypto_challenge;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             login_crypto_challenge.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         login_crypto_challenge.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-     }
 
- };
 
- class APResponseMessage : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     APResponseMessage() {};
 
-     APChallenge challenge;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             challenge.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         challenge.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-     }
 
- };
 
- class LoginCryptoDiffieHellmanResponse : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoDiffieHellmanResponse() {};
 
-     std::vector<uint8_t> hmac;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             reader->decodeVector(hmac);
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         writer->addVector(10, hmac);
 
-     }
 
- };
 
- class LoginCryptoResponseUnion : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     LoginCryptoResponseUnion() {};
 
-     LoginCryptoDiffieHellmanResponse diffie_hellman;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             diffie_hellman.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         diffie_hellman.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-     }
 
- };
 
- class CryptoResponseUnion : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     CryptoResponseUnion() {};
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-     }
 
- };
 
- class PoWResponseUnion : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     PoWResponseUnion() {};
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-     }
 
- };
 
- class ClientResponsePlaintext : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     ClientResponsePlaintext() {};
 
-     LoginCryptoResponseUnion login_crypto_response;
 
-     PoWResponseUnion pow_response;
 
-     CryptoResponseUnion crypto_response;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             login_crypto_response.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         case 20:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             pow_response.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         case 30:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             crypto_response.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         login_crypto_response.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-         lastMessagePosition = writer->startMessage();
 
-         pow_response.encodeWithWriter(writer);
 
-         writer->finishMessage(20, lastMessagePosition);
 
-         lastMessagePosition = writer->startMessage();
 
-         crypto_response.encodeWithWriter(writer);
 
-         writer->finishMessage(30, lastMessagePosition);
 
-     }
 
- };
 
- class ClientHello : public BaseProtobufMessage {
 
- private:
 
- public:
 
-     ClientHello() {};
 
-     BuildInfo build_info;
 
-     LoginCryptoHelloUnion login_crypto_hello;
 
-     std::vector<Cryptosuite> cryptosuites_supported;
 
-     std::vector<uint8_t> client_nonce;
 
-     std::vector<uint8_t> padding;
 
-     FeatureSet feature_set;
 
-     
 
-     bool decodeField(std::shared_ptr<PbReader> reader)	{
 
-         if (firstField) {
 
-             cryptosuites_supported.clear();
 
-         }
 
-         switch (reader->currentTag)
 
-         {
 
-         case 10:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             build_info.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         case 50:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             login_crypto_hello.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         case 30:
 
-             cryptosuites_supported.push_back(Cryptosuite());
 
-             cryptosuites_supported[cryptosuites_supported.size()-1] = static_cast<Cryptosuite>(reader->decodeVarInt<uint32_t>());
 
-             break;
 
-         case 60:
 
-             reader->decodeVector(client_nonce);
 
-             break;
 
-         case 70:
 
-             reader->decodeVector(padding);
 
-             break;
 
-         case 80:
 
-             lastMessagePosition = reader->pos + reader->decodeVarInt<uint32_t>();
 
-             feature_set.parseWithReader(reader);
 
-             reader->maxPosition = lastMessagePosition;
 
-             break;
 
-         default:
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     void encodeWithWriter(std::shared_ptr<PbWriter> writer) {
 
-         lastMessagePosition = writer->startMessage();
 
-         build_info.encodeWithWriter(writer);
 
-         writer->finishMessage(10, lastMessagePosition);
 
-         lastMessagePosition = writer->startMessage();
 
-         login_crypto_hello.encodeWithWriter(writer);
 
-         writer->finishMessage(50, lastMessagePosition);
 
-         lastMessagePosition = writer->startMessage();
 
-         for (int i = 0; i < cryptosuites_supported.size(); i++) {
 
-             writer->encodeVarInt(static_cast<uint32_t>(cryptosuites_supported[i]));
 
-         }
 
-         writer->finishMessage(30, lastMessagePosition);
 
-         writer->addVector(60, client_nonce);
 
-         writer->addVector(70, padding);
 
-         lastMessagePosition = writer->startMessage();
 
-         feature_set.encodeWithWriter(writer);
 
-         writer->finishMessage(80, lastMessagePosition);
 
-     }
 
- };
 
- #endif
 
 
  |