joylink_softap_util.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef _JOYLINK_SOFTAP_UTIL_H_
  2. #define _JOYLINK_SOFTAP_UTIL_H_
  3. /* Boolean Type */
  4. typedef unsigned char bool;
  5. typedef char int8, *pint8, *pchar;
  6. typedef short int16, *pint16;
  7. typedef int int32;
  8. typedef long long int64;
  9. typedef unsigned char uint8, *puint8, *puchar;
  10. typedef unsigned short uint16, *puint16;
  11. typedef unsigned short uint16le;
  12. typedef unsigned int uint32,*puint32;
  13. typedef unsigned int uint32le;
  14. typedef unsigned long long uint64,*puint64;
  15. #define TRUE 1
  16. #define FALSE 0
  17. #define MAX_LEN_OF_SSID (32)
  18. #define MAX_LEN_OF_PASSWORD 64
  19. #define LEN_URL_MAX 32
  20. #define LEN_TOKEN_MAX 16
  21. /*packet type*/
  22. #define SOFTAP_TYPE_PUBKEY 1 //device ->app public key type
  23. #define SOFTAP_TYPE_DEVCIEIN_R1 2 //app ->device R1 type
  24. #define SOFTAP_TYPE_DEVICEIN_SSIDPASS 4 //app ->device ssid and pass packet type
  25. #define SOFTAP_TYPE_DEVICEOUT_R2 3 //device ->app R2 packet type
  26. #define SOFTAP_TYPE_DEVICEOUT_RESULT 5 //device ->app ssid and pass setting result type
  27. /*packet message*/
  28. #define SOFTAP_OFFSET_TYPE 4
  29. #define SOFTAP_OFFSET_DATALEN 5
  30. #define SOFTAP_OFFSET_DATA 6
  31. #define SOFTAP_LEN_PACKET_WITHOUTDATA 8 //the length of the packet without area
  32. #define LEN_PUBLICKEY_ECC 0x40
  33. #define LEN_SHAREDKEY_LEN 0x20
  34. #define LEN_PRIVIATEKEY_ECC 0x20
  35. #define LEN_R1R2_ECC 0x20
  36. #define LEN_PUBLICKEY_ECC_ZIP 33
  37. #define SOFTAP_FLAG_TCP 0
  38. #define SOFTAP_FLAG_UDP 1
  39. #define SOFTAP_FLAG_TCP_UDP 2
  40. #define SOFTAP_SHORT_VERSION 2
  41. #define SOFTAP_BROAD_PUBKEY_PACKETLEN (SOFTAP_LEN_PACKET_WITHOUTDATA + LEN_PUBLICKEY_ECC_ZIP + 1) //the packet length of broad public key packet
  42. #define SIZE_SSID 32
  43. #define SIZE_PASSWORD 64
  44. #define SOFTAP_PACKET_HEAD "JYAP" //packet head
  45. typedef enum _joylink_softap_status
  46. {
  47. SOFTAP_PROCESSING = 0,
  48. SOFTAP_SUCCESS,
  49. SOFTAP_FAIL
  50. }softapStatus_t;
  51. typedef struct _joylinkSoftAP_Result
  52. {
  53. unsigned char type; //reserved
  54. unsigned char ssid[SIZE_SSID+1];
  55. unsigned char pass[SIZE_PASSWORD+1];
  56. #ifdef _IS_DEV_REQUEST_ACTIVE_SUPPORTED_
  57. unsigned char url[LEN_URL_MAX + 1];
  58. unsigned char token[LEN_TOKEN_MAX + 1];
  59. #endif
  60. unsigned char bssid[6]; //reserved
  61. }joylinkSoftAP_Result_t;
  62. typedef struct _joylinkSoftAPRam
  63. {
  64. uint8 is_generate_key;
  65. uint8 is_stop_broadcast_pubkey;
  66. uint8 ecc_publickey[LEN_PUBLICKEY_ECC];
  67. uint8 ecc_privatekey[LEN_PRIVIATEKEY_ECC];
  68. uint8 shared_key[LEN_SHAREDKEY_LEN];
  69. uint8 ecc_r1[LEN_R1R2_ECC];
  70. uint8 ecc_r2[LEN_R1R2_ECC];
  71. uint8 ecc_publickey_remote[LEN_PUBLICKEY_ECC];
  72. const struct uECC_Curve_t * ecc_curves;
  73. uint8 sessionkey[0x20];
  74. softapStatus_t status;
  75. joylinkSoftAP_Result_t softap_result;
  76. #ifdef _IS_DEV_REQUEST_ACTIVE_SUPPORTED_
  77. uint8 is_need_active;
  78. #endif
  79. }joylinkSoftAPRam;
  80. #endif