authentication.proto 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. // size=30
  2. message ClientResponseEncrypted {
  3. required LoginCredentials login_credentials = 0xa; // idx=0 offset=c
  4. optional AccountCreation account_creation = 0x14; // idx=1 offset=10
  5. optional FingerprintResponseUnion fingerprint_response = 0x1e; // idx=2 offset=14
  6. optional PeerTicketUnion peer_ticket = 0x28; // idx=3 offset=18
  7. required SystemInfo system_info = 0x32; // idx=4 offset=1c
  8. optional string platform_model = 0x3c; // idx=5 offset=20
  9. optional string version_string = 0x46; // idx=6 offset=24
  10. optional LibspotifyAppKey appkey = 0x50; // idx=7 offset=28
  11. optional ClientInfo client_info = 0x5a; // idx=8 offset=2c
  12. }
  13. // size=18
  14. message LoginCredentials {
  15. optional string username = 0xa; // idx=0 offset=c
  16. required Type typ = 0x14; // idx=1 offset=10
  17. optional bytes auth_data = 0x1e; // idx=2 offset=14
  18. }
  19. enum Type {
  20. AUTHENTICATION_USER_PASS = 0x0;
  21. AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS = 0x1;
  22. AUTHENTICATION_STORED_FACEBOOK_CREDENTIALS = 0x2;
  23. AUTHENTICATION_SPOTIFY_TOKEN = 0x3;
  24. AUTHENTICATION_FACEBOOK_TOKEN = 0x4;
  25. }
  26. enum AccountCreation {
  27. ACCOUNT_CREATION_ALWAYS_PROMPT = 0x1;
  28. ACCOUNT_CREATION_ALWAYS_CREATE = 0x3;
  29. }
  30. // size=14
  31. message FingerprintResponseUnion {
  32. optional FingerprintGrainResponse grain = 0xa; // idx=0 offset=c
  33. optional FingerprintHmacRipemdResponse hmac_ripemd = 0x14; // idx=1 offset=10
  34. }
  35. // size=1c
  36. message FingerprintGrainResponse {
  37. required bytes encrypted_key = 0xa; // idx=0 offset=c size=f
  38. }
  39. // size=20
  40. message FingerprintHmacRipemdResponse {
  41. required bytes hmac = 0xa; // idx=0 offset=c size=13
  42. }
  43. // size=14
  44. message PeerTicketUnion {
  45. optional PeerTicketPublicKey public_key = 0xa; // idx=0 offset=c
  46. optional PeerTicketOld old_ticket = 0x14; // idx=1 offset=10
  47. }
  48. // size=8c
  49. message PeerTicketPublicKey {
  50. required bytes public_key = 0xa; // idx=0 offset=c size=7f
  51. }
  52. // size=90
  53. message PeerTicketOld {
  54. required bytes peer_ticket = 0xa; // idx=0 offset=c
  55. required bytes peer_ticket_signature = 0x14; // idx=1 offset=10 size=7f
  56. }
  57. // size=34
  58. message SystemInfo {
  59. required CpuFamily cpu_family = 0xa; // idx=0 offset=c
  60. optional uint32 cpu_subtype = 0x14; // idx=1 offset=10
  61. optional uint32 cpu_ext = 0x1e; // idx=2 offset=14
  62. optional Brand brand = 0x28; // idx=3 offset=18
  63. optional uint32 brand_flags = 0x32; // idx=4 offset=1c
  64. required Os os = 0x3c; // idx=5 offset=20
  65. optional uint32 os_version = 0x46; // idx=6 offset=24
  66. optional uint32 os_ext = 0x50; // idx=7 offset=28
  67. optional string system_information_string = 0x5a; // idx=8 offset=2c
  68. optional string device_id = 0x64; // idx=9 offset=30
  69. }
  70. enum CpuFamily {
  71. CPU_UNKNOWN = 0x0;
  72. CPU_X86 = 0x1;
  73. CPU_X86_64 = 0x2;
  74. CPU_PPC = 0x3;
  75. CPU_PPC_64 = 0x4;
  76. CPU_ARM = 0x5;
  77. CPU_IA64 = 0x6;
  78. CPU_SH = 0x7;
  79. CPU_MIPS = 0x8;
  80. CPU_BLACKFIN = 0x9;
  81. }
  82. enum Brand {
  83. BRAND_UNBRANDED = 0x0;
  84. BRAND_INQ = 0x1;
  85. BRAND_HTC = 0x2;
  86. BRAND_NOKIA = 0x3;
  87. }
  88. enum Os {
  89. OS_UNKNOWN = 0x0;
  90. OS_WINDOWS = 0x1;
  91. OS_OSX = 0x2;
  92. OS_IPHONE = 0x3;
  93. OS_S60 = 0x4;
  94. OS_LINUX = 0x5;
  95. OS_WINDOWS_CE = 0x6;
  96. OS_ANDROID = 0x7;
  97. OS_PALM = 0x8;
  98. OS_FREEBSD = 0x9;
  99. OS_BLACKBERRY = 0xa;
  100. OS_SONOS = 0xb;
  101. OS_LOGITECH = 0xc;
  102. OS_WP7 = 0xd;
  103. OS_ONKYO = 0xe;
  104. OS_PHILIPS = 0xf;
  105. OS_WD = 0x10;
  106. OS_VOLVO = 0x11;
  107. OS_TIVO = 0x12;
  108. OS_AWOX = 0x13;
  109. OS_MEEGO = 0x14;
  110. OS_QNXNTO = 0x15;
  111. OS_BCO = 0x16;
  112. }
  113. // size=168
  114. message LibspotifyAppKey {
  115. required uint32 version = 0x1; // idx=0 offset=c
  116. required bytes devkey = 0x2; // idx=1 offset=10 size=7f
  117. required bytes signature = 0x3; // idx=2 offset=90 size=bf
  118. required string useragent = 0x4; // idx=3 offset=150
  119. required bytes callback_hash = 0x5; // idx=4 offset=154 size=13
  120. }
  121. // size=18
  122. message ClientInfo {
  123. optional bool limited = 0x1; // idx=0 offset=c
  124. optional ClientInfoFacebook fb = 0x2; // idx=1 offset=10
  125. optional string language = 0x3; // idx=2 offset=14
  126. }
  127. // size=10
  128. message ClientInfoFacebook {
  129. optional string machine_id = 0x1; // idx=0 offset=c
  130. }
  131. message AuthSuccess {
  132. required string username = 0x0a;
  133. required uint32 data1 = 0x14;
  134. required uint32 data2 = 0x19;
  135. required uint32 data3 = 0x1e;
  136. required bytes data4 = 0x28;
  137. required bytes data5 = 0x32;
  138. }
  139. message AuthFailure {
  140. required uint32 code = 0x0a;
  141. required Data1 data1 = 0x32;
  142. message Data1 {
  143. required string data0 = 0x01;
  144. }
  145. }