keyexchange.pb.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. /* Automatically generated nanopb header */
  2. /* Generated by nanopb-0.4.6-dev */
  3. #ifndef PB_PROTOBUF_KEYEXCHANGE_PB_H_INCLUDED
  4. #define PB_PROTOBUF_KEYEXCHANGE_PB_H_INCLUDED
  5. #include <pb.h>
  6. #if PB_PROTO_HEADER_VERSION != 40
  7. #error Regenerate this file with the current version of nanopb generator.
  8. #endif
  9. /* Enum definitions */
  10. typedef enum _Product {
  11. Product_PRODUCT_CLIENT = 0,
  12. Product_PRODUCT_LIBSPOTIFY = 1,
  13. Product_PRODUCT_MOBILE = 2,
  14. Product_PRODUCT_PARTNER = 3,
  15. Product_PRODUCT_LIBSPOTIFY_EMBEDDED = 5
  16. } Product;
  17. typedef enum _Platform2 {
  18. Platform2_PLATFORM_WIN32_X86 = 0,
  19. Platform2_PLATFORM_OSX_X86 = 1,
  20. Platform2_PLATFORM_LINUX_X86 = 2,
  21. Platform2_PLATFORM_IPHONE_ARM = 3,
  22. Platform2_PLATFORM_S60_ARM = 4,
  23. Platform2_PLATFORM_OSX_PPC = 5,
  24. Platform2_PLATFORM_ANDROID_ARM = 6,
  25. Platform2_PLATFORM_WINDOWS_CE_ARM = 7,
  26. Platform2_PLATFORM_LINUX_X86_64 = 8,
  27. Platform2_PLATFORM_OSX_X86_64 = 9,
  28. Platform2_PLATFORM_PALM_ARM = 10,
  29. Platform2_PLATFORM_LINUX_SH = 11,
  30. Platform2_PLATFORM_FREEBSD_X86 = 12,
  31. Platform2_PLATFORM_FREEBSD_X86_64 = 13,
  32. Platform2_PLATFORM_BLACKBERRY_ARM = 14,
  33. Platform2_PLATFORM_SONOS = 15,
  34. Platform2_PLATFORM_LINUX_MIPS = 16,
  35. Platform2_PLATFORM_LINUX_ARM = 17,
  36. Platform2_PLATFORM_LOGITECH_ARM = 18,
  37. Platform2_PLATFORM_LINUX_BLACKFIN = 19,
  38. Platform2_PLATFORM_WP7_ARM = 20,
  39. Platform2_PLATFORM_ONKYO_ARM = 21,
  40. Platform2_PLATFORM_QNXNTO_ARM = 22,
  41. Platform2_PLATFORM_BCO_ARM = 23
  42. } Platform2;
  43. typedef enum _Cryptosuite {
  44. Cryptosuite_CRYPTO_SUITE_SHANNON = 0,
  45. Cryptosuite_CRYPTO_SUITE_RC4_SHA1_HMAC = 1
  46. } Cryptosuite;
  47. /* Struct definitions */
  48. typedef struct _CryptoResponseUnion {
  49. char dummy_field;
  50. } CryptoResponseUnion;
  51. typedef struct _PoWResponseUnion {
  52. char dummy_field;
  53. } PoWResponseUnion;
  54. typedef struct _BuildInfo {
  55. Product product;
  56. Platform2 platform;
  57. uint64_t version;
  58. } BuildInfo;
  59. typedef struct _FeatureSet {
  60. bool has_autoupdate2;
  61. bool autoupdate2;
  62. } FeatureSet;
  63. typedef struct _LoginCryptoDiffieHellmanChallenge {
  64. pb_byte_t gs[96];
  65. } LoginCryptoDiffieHellmanChallenge;
  66. typedef struct _LoginCryptoDiffieHellmanHello {
  67. pb_byte_t gc[96];
  68. uint32_t server_keys_known;
  69. } LoginCryptoDiffieHellmanHello;
  70. typedef struct _LoginCryptoDiffieHellmanResponse {
  71. pb_byte_t hmac[20];
  72. } LoginCryptoDiffieHellmanResponse;
  73. typedef struct _LoginCryptoChallengeUnion {
  74. bool has_diffie_hellman;
  75. LoginCryptoDiffieHellmanChallenge diffie_hellman;
  76. } LoginCryptoChallengeUnion;
  77. typedef struct _LoginCryptoHelloUnion {
  78. bool has_diffie_hellman;
  79. LoginCryptoDiffieHellmanHello diffie_hellman;
  80. } LoginCryptoHelloUnion;
  81. typedef struct _LoginCryptoResponseUnion {
  82. bool has_diffie_hellman;
  83. LoginCryptoDiffieHellmanResponse diffie_hellman;
  84. } LoginCryptoResponseUnion;
  85. typedef struct _APChallenge {
  86. LoginCryptoChallengeUnion login_crypto_challenge;
  87. } APChallenge;
  88. typedef struct _ClientHello {
  89. BuildInfo build_info;
  90. Cryptosuite cryptosuites_supported[1];
  91. LoginCryptoHelloUnion login_crypto_hello;
  92. pb_byte_t client_nonce[16];
  93. bool has_padding;
  94. pb_byte_t padding[1];
  95. bool has_feature_set;
  96. FeatureSet feature_set;
  97. } ClientHello;
  98. typedef struct _ClientResponsePlaintext {
  99. LoginCryptoResponseUnion login_crypto_response;
  100. PoWResponseUnion pow_response;
  101. CryptoResponseUnion crypto_response;
  102. } ClientResponsePlaintext;
  103. typedef struct _APResponseMessage {
  104. bool has_challenge;
  105. APChallenge challenge;
  106. } APResponseMessage;
  107. /* Helper constants for enums */
  108. #define _Product_MIN Product_PRODUCT_CLIENT
  109. #define _Product_MAX Product_PRODUCT_LIBSPOTIFY_EMBEDDED
  110. #define _Product_ARRAYSIZE ((Product)(Product_PRODUCT_LIBSPOTIFY_EMBEDDED+1))
  111. #define _Platform2_MIN Platform2_PLATFORM_WIN32_X86
  112. #define _Platform2_MAX Platform2_PLATFORM_BCO_ARM
  113. #define _Platform2_ARRAYSIZE ((Platform2)(Platform2_PLATFORM_BCO_ARM+1))
  114. #define _Cryptosuite_MIN Cryptosuite_CRYPTO_SUITE_SHANNON
  115. #define _Cryptosuite_MAX Cryptosuite_CRYPTO_SUITE_RC4_SHA1_HMAC
  116. #define _Cryptosuite_ARRAYSIZE ((Cryptosuite)(Cryptosuite_CRYPTO_SUITE_RC4_SHA1_HMAC+1))
  117. #ifdef __cplusplus
  118. extern "C" {
  119. #endif
  120. /* Initializer values for message structs */
  121. #define LoginCryptoDiffieHellmanChallenge_init_default {{0}}
  122. #define LoginCryptoChallengeUnion_init_default {false, LoginCryptoDiffieHellmanChallenge_init_default}
  123. #define LoginCryptoDiffieHellmanHello_init_default {{0}, 0}
  124. #define LoginCryptoHelloUnion_init_default {false, LoginCryptoDiffieHellmanHello_init_default}
  125. #define BuildInfo_init_default {_Product_MIN, _Platform2_MIN, 0}
  126. #define FeatureSet_init_default {false, 0}
  127. #define APChallenge_init_default {LoginCryptoChallengeUnion_init_default}
  128. #define APResponseMessage_init_default {false, APChallenge_init_default}
  129. #define LoginCryptoDiffieHellmanResponse_init_default {{0}}
  130. #define LoginCryptoResponseUnion_init_default {false, LoginCryptoDiffieHellmanResponse_init_default}
  131. #define CryptoResponseUnion_init_default {0}
  132. #define PoWResponseUnion_init_default {0}
  133. #define ClientResponsePlaintext_init_default {LoginCryptoResponseUnion_init_default, PoWResponseUnion_init_default, CryptoResponseUnion_init_default}
  134. #define ClientHello_init_default {BuildInfo_init_default, {_Cryptosuite_MIN}, LoginCryptoHelloUnion_init_default, {0}, false, {0}, false, FeatureSet_init_default}
  135. #define LoginCryptoDiffieHellmanChallenge_init_zero {{0}}
  136. #define LoginCryptoChallengeUnion_init_zero {false, LoginCryptoDiffieHellmanChallenge_init_zero}
  137. #define LoginCryptoDiffieHellmanHello_init_zero {{0}, 0}
  138. #define LoginCryptoHelloUnion_init_zero {false, LoginCryptoDiffieHellmanHello_init_zero}
  139. #define BuildInfo_init_zero {_Product_MIN, _Platform2_MIN, 0}
  140. #define FeatureSet_init_zero {false, 0}
  141. #define APChallenge_init_zero {LoginCryptoChallengeUnion_init_zero}
  142. #define APResponseMessage_init_zero {false, APChallenge_init_zero}
  143. #define LoginCryptoDiffieHellmanResponse_init_zero {{0}}
  144. #define LoginCryptoResponseUnion_init_zero {false, LoginCryptoDiffieHellmanResponse_init_zero}
  145. #define CryptoResponseUnion_init_zero {0}
  146. #define PoWResponseUnion_init_zero {0}
  147. #define ClientResponsePlaintext_init_zero {LoginCryptoResponseUnion_init_zero, PoWResponseUnion_init_zero, CryptoResponseUnion_init_zero}
  148. #define ClientHello_init_zero {BuildInfo_init_zero, {_Cryptosuite_MIN}, LoginCryptoHelloUnion_init_zero, {0}, false, {0}, false, FeatureSet_init_zero}
  149. /* Field tags (for use in manual encoding/decoding) */
  150. #define BuildInfo_product_tag 10
  151. #define BuildInfo_platform_tag 30
  152. #define BuildInfo_version_tag 40
  153. #define FeatureSet_autoupdate2_tag 1
  154. #define LoginCryptoDiffieHellmanChallenge_gs_tag 10
  155. #define LoginCryptoDiffieHellmanHello_gc_tag 10
  156. #define LoginCryptoDiffieHellmanHello_server_keys_known_tag 20
  157. #define LoginCryptoDiffieHellmanResponse_hmac_tag 10
  158. #define LoginCryptoChallengeUnion_diffie_hellman_tag 10
  159. #define LoginCryptoHelloUnion_diffie_hellman_tag 10
  160. #define LoginCryptoResponseUnion_diffie_hellman_tag 10
  161. #define APChallenge_login_crypto_challenge_tag 10
  162. #define ClientHello_build_info_tag 10
  163. #define ClientHello_cryptosuites_supported_tag 30
  164. #define ClientHello_login_crypto_hello_tag 50
  165. #define ClientHello_client_nonce_tag 60
  166. #define ClientHello_padding_tag 70
  167. #define ClientHello_feature_set_tag 80
  168. #define ClientResponsePlaintext_login_crypto_response_tag 10
  169. #define ClientResponsePlaintext_pow_response_tag 20
  170. #define ClientResponsePlaintext_crypto_response_tag 30
  171. #define APResponseMessage_challenge_tag 10
  172. /* Struct field encoding specification for nanopb */
  173. #define LoginCryptoDiffieHellmanChallenge_FIELDLIST(X, a) \
  174. X(a, STATIC, REQUIRED, FIXED_LENGTH_BYTES, gs, 10)
  175. #define LoginCryptoDiffieHellmanChallenge_CALLBACK NULL
  176. #define LoginCryptoDiffieHellmanChallenge_DEFAULT NULL
  177. #define LoginCryptoChallengeUnion_FIELDLIST(X, a) \
  178. X(a, STATIC, OPTIONAL, MESSAGE, diffie_hellman, 10)
  179. #define LoginCryptoChallengeUnion_CALLBACK NULL
  180. #define LoginCryptoChallengeUnion_DEFAULT NULL
  181. #define LoginCryptoChallengeUnion_diffie_hellman_MSGTYPE LoginCryptoDiffieHellmanChallenge
  182. #define LoginCryptoDiffieHellmanHello_FIELDLIST(X, a) \
  183. X(a, STATIC, REQUIRED, FIXED_LENGTH_BYTES, gc, 10) \
  184. X(a, STATIC, REQUIRED, UINT32, server_keys_known, 20)
  185. #define LoginCryptoDiffieHellmanHello_CALLBACK NULL
  186. #define LoginCryptoDiffieHellmanHello_DEFAULT NULL
  187. #define LoginCryptoHelloUnion_FIELDLIST(X, a) \
  188. X(a, STATIC, OPTIONAL, MESSAGE, diffie_hellman, 10)
  189. #define LoginCryptoHelloUnion_CALLBACK NULL
  190. #define LoginCryptoHelloUnion_DEFAULT NULL
  191. #define LoginCryptoHelloUnion_diffie_hellman_MSGTYPE LoginCryptoDiffieHellmanHello
  192. #define BuildInfo_FIELDLIST(X, a) \
  193. X(a, STATIC, REQUIRED, UENUM, product, 10) \
  194. X(a, STATIC, REQUIRED, UENUM, platform, 30) \
  195. X(a, STATIC, REQUIRED, UINT64, version, 40)
  196. #define BuildInfo_CALLBACK NULL
  197. #define BuildInfo_DEFAULT NULL
  198. #define FeatureSet_FIELDLIST(X, a) \
  199. X(a, STATIC, OPTIONAL, BOOL, autoupdate2, 1)
  200. #define FeatureSet_CALLBACK NULL
  201. #define FeatureSet_DEFAULT NULL
  202. #define APChallenge_FIELDLIST(X, a) \
  203. X(a, STATIC, REQUIRED, MESSAGE, login_crypto_challenge, 10)
  204. #define APChallenge_CALLBACK NULL
  205. #define APChallenge_DEFAULT NULL
  206. #define APChallenge_login_crypto_challenge_MSGTYPE LoginCryptoChallengeUnion
  207. #define APResponseMessage_FIELDLIST(X, a) \
  208. X(a, STATIC, OPTIONAL, MESSAGE, challenge, 10)
  209. #define APResponseMessage_CALLBACK NULL
  210. #define APResponseMessage_DEFAULT NULL
  211. #define APResponseMessage_challenge_MSGTYPE APChallenge
  212. #define LoginCryptoDiffieHellmanResponse_FIELDLIST(X, a) \
  213. X(a, STATIC, REQUIRED, FIXED_LENGTH_BYTES, hmac, 10)
  214. #define LoginCryptoDiffieHellmanResponse_CALLBACK NULL
  215. #define LoginCryptoDiffieHellmanResponse_DEFAULT NULL
  216. #define LoginCryptoResponseUnion_FIELDLIST(X, a) \
  217. X(a, STATIC, OPTIONAL, MESSAGE, diffie_hellman, 10)
  218. #define LoginCryptoResponseUnion_CALLBACK NULL
  219. #define LoginCryptoResponseUnion_DEFAULT NULL
  220. #define LoginCryptoResponseUnion_diffie_hellman_MSGTYPE LoginCryptoDiffieHellmanResponse
  221. #define CryptoResponseUnion_FIELDLIST(X, a) \
  222. #define CryptoResponseUnion_CALLBACK NULL
  223. #define CryptoResponseUnion_DEFAULT NULL
  224. #define PoWResponseUnion_FIELDLIST(X, a) \
  225. #define PoWResponseUnion_CALLBACK NULL
  226. #define PoWResponseUnion_DEFAULT NULL
  227. #define ClientResponsePlaintext_FIELDLIST(X, a) \
  228. X(a, STATIC, REQUIRED, MESSAGE, login_crypto_response, 10) \
  229. X(a, STATIC, REQUIRED, MESSAGE, pow_response, 20) \
  230. X(a, STATIC, REQUIRED, MESSAGE, crypto_response, 30)
  231. #define ClientResponsePlaintext_CALLBACK NULL
  232. #define ClientResponsePlaintext_DEFAULT NULL
  233. #define ClientResponsePlaintext_login_crypto_response_MSGTYPE LoginCryptoResponseUnion
  234. #define ClientResponsePlaintext_pow_response_MSGTYPE PoWResponseUnion
  235. #define ClientResponsePlaintext_crypto_response_MSGTYPE CryptoResponseUnion
  236. #define ClientHello_FIELDLIST(X, a) \
  237. X(a, STATIC, REQUIRED, MESSAGE, build_info, 10) \
  238. X(a, STATIC, FIXARRAY, UENUM, cryptosuites_supported, 30) \
  239. X(a, STATIC, REQUIRED, MESSAGE, login_crypto_hello, 50) \
  240. X(a, STATIC, REQUIRED, FIXED_LENGTH_BYTES, client_nonce, 60) \
  241. X(a, STATIC, OPTIONAL, FIXED_LENGTH_BYTES, padding, 70) \
  242. X(a, STATIC, OPTIONAL, MESSAGE, feature_set, 80)
  243. #define ClientHello_CALLBACK NULL
  244. #define ClientHello_DEFAULT NULL
  245. #define ClientHello_build_info_MSGTYPE BuildInfo
  246. #define ClientHello_login_crypto_hello_MSGTYPE LoginCryptoHelloUnion
  247. #define ClientHello_feature_set_MSGTYPE FeatureSet
  248. extern const pb_msgdesc_t LoginCryptoDiffieHellmanChallenge_msg;
  249. extern const pb_msgdesc_t LoginCryptoChallengeUnion_msg;
  250. extern const pb_msgdesc_t LoginCryptoDiffieHellmanHello_msg;
  251. extern const pb_msgdesc_t LoginCryptoHelloUnion_msg;
  252. extern const pb_msgdesc_t BuildInfo_msg;
  253. extern const pb_msgdesc_t FeatureSet_msg;
  254. extern const pb_msgdesc_t APChallenge_msg;
  255. extern const pb_msgdesc_t APResponseMessage_msg;
  256. extern const pb_msgdesc_t LoginCryptoDiffieHellmanResponse_msg;
  257. extern const pb_msgdesc_t LoginCryptoResponseUnion_msg;
  258. extern const pb_msgdesc_t CryptoResponseUnion_msg;
  259. extern const pb_msgdesc_t PoWResponseUnion_msg;
  260. extern const pb_msgdesc_t ClientResponsePlaintext_msg;
  261. extern const pb_msgdesc_t ClientHello_msg;
  262. /* Defines for backwards compatibility with code written before nanopb-0.4.0 */
  263. #define LoginCryptoDiffieHellmanChallenge_fields &LoginCryptoDiffieHellmanChallenge_msg
  264. #define LoginCryptoChallengeUnion_fields &LoginCryptoChallengeUnion_msg
  265. #define LoginCryptoDiffieHellmanHello_fields &LoginCryptoDiffieHellmanHello_msg
  266. #define LoginCryptoHelloUnion_fields &LoginCryptoHelloUnion_msg
  267. #define BuildInfo_fields &BuildInfo_msg
  268. #define FeatureSet_fields &FeatureSet_msg
  269. #define APChallenge_fields &APChallenge_msg
  270. #define APResponseMessage_fields &APResponseMessage_msg
  271. #define LoginCryptoDiffieHellmanResponse_fields &LoginCryptoDiffieHellmanResponse_msg
  272. #define LoginCryptoResponseUnion_fields &LoginCryptoResponseUnion_msg
  273. #define CryptoResponseUnion_fields &CryptoResponseUnion_msg
  274. #define PoWResponseUnion_fields &PoWResponseUnion_msg
  275. #define ClientResponsePlaintext_fields &ClientResponsePlaintext_msg
  276. #define ClientHello_fields &ClientHello_msg
  277. /* Maximum encoded size of messages (where known) */
  278. #define APChallenge_size 102
  279. #define APResponseMessage_size 104
  280. #define BuildInfo_size 17
  281. #define ClientHello_size 161
  282. #define ClientResponsePlaintext_size 32
  283. #define CryptoResponseUnion_size 0
  284. #define FeatureSet_size 2
  285. #define LoginCryptoChallengeUnion_size 100
  286. #define LoginCryptoDiffieHellmanChallenge_size 98
  287. #define LoginCryptoDiffieHellmanHello_size 105
  288. #define LoginCryptoDiffieHellmanResponse_size 22
  289. #define LoginCryptoHelloUnion_size 107
  290. #define LoginCryptoResponseUnion_size 24
  291. #define PoWResponseUnion_size 0
  292. #ifdef __cplusplus
  293. } /* extern "C" */
  294. #endif
  295. #endif