| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | message LoginCryptoDiffieHellmanChallenge {    required bytes gs = 0xa; }message LoginCryptoChallengeUnion {    optional LoginCryptoDiffieHellmanChallenge diffie_hellman = 0xa; }enum Product {    PRODUCT_CLIENT = 0x0;    PRODUCT_LIBSPOTIFY= 0x1;    PRODUCT_MOBILE = 0x2;    PRODUCT_PARTNER = 0x3;    PRODUCT_LIBSPOTIFY_EMBEDDED = 0x5;}message LoginCryptoDiffieHellmanHello {    required bytes gc = 0xa;    required uint32 server_keys_known = 0x14;}message LoginCryptoHelloUnion {    optional LoginCryptoDiffieHellmanHello diffie_hellman = 0xa; }enum Platform2 {    PLATFORM_WIN32_X86 = 0x0;    PLATFORM_OSX_X86 = 0x1;    PLATFORM_LINUX_X86 = 0x2;    PLATFORM_IPHONE_ARM = 0x3;    PLATFORM_S60_ARM = 0x4;    PLATFORM_OSX_PPC = 0x5;    PLATFORM_ANDROID_ARM = 0x6;    PLATFORM_WINDOWS_CE_ARM = 0x7;    PLATFORM_LINUX_X86_64 = 0x8;    PLATFORM_OSX_X86_64 = 0x9;    PLATFORM_PALM_ARM = 0xa;    PLATFORM_LINUX_SH = 0xb;    PLATFORM_FREEBSD_X86 = 0xc;    PLATFORM_FREEBSD_X86_64 = 0xd;    PLATFORM_BLACKBERRY_ARM = 0xe;    PLATFORM_SONOS = 0xf;    PLATFORM_LINUX_MIPS = 0x10;    PLATFORM_LINUX_ARM = 0x11;    PLATFORM_LOGITECH_ARM = 0x12;    PLATFORM_LINUX_BLACKFIN = 0x13;    PLATFORM_WP7_ARM = 0x14;    PLATFORM_ONKYO_ARM = 0x15;    PLATFORM_QNXNTO_ARM = 0x16;    PLATFORM_BCO_ARM = 0x17;}enum Cryptosuite {    CRYPTO_SUITE_SHANNON = 0x0;    CRYPTO_SUITE_RC4_SHA1_HMAC = 0x1;}message BuildInfo {    required Product product = 0xa;     required Platform2 platform = 0x1e;     required uint64 version = 0x28; }message FeatureSet {    optional bool autoupdate2 = 0x1; }message APChallenge {    required LoginCryptoChallengeUnion login_crypto_challenge = 0xa; }message APResponseMessage {    optional APChallenge challenge = 0xa; }message LoginCryptoDiffieHellmanResponse {    required bytes hmac = 0xa; }message LoginCryptoResponseUnion {    optional LoginCryptoDiffieHellmanResponse diffie_hellman = 0xa; }message CryptoResponseUnion {}message PoWResponseUnion {}message ClientResponsePlaintext {    required LoginCryptoResponseUnion login_crypto_response = 0xa;    required PoWResponseUnion pow_response = 0x14;     required CryptoResponseUnion crypto_response = 0x1e;}message ClientHello {    required BuildInfo build_info = 0xa;     required LoginCryptoHelloUnion login_crypto_hello = 0x32;     repeated Cryptosuite cryptosuites_supported = 0x1e;     required bytes client_nonce = 0x3c;     optional bytes padding = 0x46;     optional FeatureSet feature_set = 0x50; }
 |