iOS AILinkBleSDK - 蓝牙SDK
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ELEncryptTool.h 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // ELEncryptTool.h
  3. // AILinkSDK
  4. //
  5. // Created by iot_user on 2019/5/7.
  6. // Copyright © 2019 IOT. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "ELSDKHeader.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. @interface ELEncryptTool : NSObject
  12. /**
  13. app与ble握手的数据
  14. @return:app与ble握手的数据
  15. */
  16. +(NSData *)handshake;
  17. /**
  18. 将蓝牙发送的请求握手数据的3〜18位数据加密后再得到符合条件的数据发送给蓝牙
  19. @param receiveData 蓝牙发送的请求握手数据的3〜18位数据
  20. @return 送给蓝牙的握手验证数据
  21. */
  22. +(NSData *)blueToothHandshakeWithData:(NSData *)receiveData;
  23. /**
  24. 加密验证方法1
  25. @param handshake 3-18位置的数据
  26. @return:加密后的数据
  27. */
  28. + (NSData *)encryptTEA:(NSData * _Nonnull)handshake;
  29. /**
  30. TEA加密
  31. @param v 要加密的数据
  32. @param k 密钥
  33. */
  34. + (void)encrypt_tea:(uint32_t *)v key:(uint32_t *)k;
  35. /**
  36. 加密验证方法2
  37. @param macXOR mac地址对应的数据,传ELPeripheralModel的macXOR
  38. @param deviceTypeXOR 设备类型对应的数据,传ELPeripheralModel的deviceTypeXOR
  39. @param dataXOR 要加密的数据
  40. @return 加密后的数据
  41. */
  42. + (NSData *)encryptXOR:(NSData *)macXOR deviceTypeXOR:(NSData *)deviceTypeXOR withXORData:(NSData *)dataXOR;
  43. /// 对广播设备数据进行加密
  44. /// @param handshake 原始数据
  45. /// @param cid cid
  46. /// @param vid vid
  47. /// @param pid pid
  48. + (NSData *)broadcastDecryptTEA:(NSData * _Nonnull)handshake cid:(Byte)cid vid:(Byte)vid pid:(Byte)pid;
  49. ///对跳绳数据进行加密
  50. + (NSData *)skipEncryptTEA:(NSData *_Nonnull)baseData;
  51. @end
  52. NS_ASSUME_NONNULL_END