keyexchange.proto 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. message LoginCryptoDiffieHellmanChallenge {
  2. required bytes gs = 0xa;
  3. }
  4. message LoginCryptoChallengeUnion {
  5. optional LoginCryptoDiffieHellmanChallenge diffie_hellman = 0xa;
  6. }
  7. enum Product {
  8. PRODUCT_CLIENT = 0x0;
  9. PRODUCT_LIBSPOTIFY= 0x1;
  10. PRODUCT_MOBILE = 0x2;
  11. PRODUCT_PARTNER = 0x3;
  12. PRODUCT_LIBSPOTIFY_EMBEDDED = 0x5;
  13. }
  14. message LoginCryptoDiffieHellmanHello {
  15. required bytes gc = 0xa;
  16. required uint32 server_keys_known = 0x14;
  17. }
  18. message LoginCryptoHelloUnion {
  19. optional LoginCryptoDiffieHellmanHello diffie_hellman = 0xa;
  20. }
  21. enum Platform2 {
  22. PLATFORM_WIN32_X86 = 0x0;
  23. PLATFORM_OSX_X86 = 0x1;
  24. PLATFORM_LINUX_X86 = 0x2;
  25. PLATFORM_IPHONE_ARM = 0x3;
  26. PLATFORM_S60_ARM = 0x4;
  27. PLATFORM_OSX_PPC = 0x5;
  28. PLATFORM_ANDROID_ARM = 0x6;
  29. PLATFORM_WINDOWS_CE_ARM = 0x7;
  30. PLATFORM_LINUX_X86_64 = 0x8;
  31. PLATFORM_OSX_X86_64 = 0x9;
  32. PLATFORM_PALM_ARM = 0xa;
  33. PLATFORM_LINUX_SH = 0xb;
  34. PLATFORM_FREEBSD_X86 = 0xc;
  35. PLATFORM_FREEBSD_X86_64 = 0xd;
  36. PLATFORM_BLACKBERRY_ARM = 0xe;
  37. PLATFORM_SONOS = 0xf;
  38. PLATFORM_LINUX_MIPS = 0x10;
  39. PLATFORM_LINUX_ARM = 0x11;
  40. PLATFORM_LOGITECH_ARM = 0x12;
  41. PLATFORM_LINUX_BLACKFIN = 0x13;
  42. PLATFORM_WP7_ARM = 0x14;
  43. PLATFORM_ONKYO_ARM = 0x15;
  44. PLATFORM_QNXNTO_ARM = 0x16;
  45. PLATFORM_BCO_ARM = 0x17;
  46. }
  47. enum Cryptosuite {
  48. CRYPTO_SUITE_SHANNON = 0x0;
  49. CRYPTO_SUITE_RC4_SHA1_HMAC = 0x1;
  50. }
  51. message BuildInfo {
  52. required Product product = 0xa;
  53. required Platform2 platform = 0x1e;
  54. required uint64 version = 0x28;
  55. }
  56. message FeatureSet {
  57. optional bool autoupdate2 = 0x1;
  58. }
  59. message APChallenge {
  60. required LoginCryptoChallengeUnion login_crypto_challenge = 0xa;
  61. }
  62. message APResponseMessage {
  63. optional APChallenge challenge = 0xa;
  64. }
  65. message LoginCryptoDiffieHellmanResponse {
  66. required bytes hmac = 0xa;
  67. }
  68. message LoginCryptoResponseUnion {
  69. optional LoginCryptoDiffieHellmanResponse diffie_hellman = 0xa;
  70. }
  71. message CryptoResponseUnion {
  72. }
  73. message PoWResponseUnion {
  74. }
  75. message ClientResponsePlaintext {
  76. required LoginCryptoResponseUnion login_crypto_response = 0xa;
  77. required PoWResponseUnion pow_response = 0x14;
  78. required CryptoResponseUnion crypto_response = 0x1e;
  79. }
  80. message ClientHello {
  81. required BuildInfo build_info = 0xa;
  82. required LoginCryptoHelloUnion login_crypto_hello = 0x32;
  83. repeated Cryptosuite cryptosuites_supported = 0x1e;
  84. required bytes client_nonce = 0x3c;
  85. optional bytes padding = 0x46;
  86. optional FeatureSet feature_set = 0x50;
  87. }