猎豆优选

SecurityProtocol.h 6.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. //
  2. // SecurityProtocol.h
  3. // mtopsdk
  4. //
  5. // 安全保镖遵守的协议
  6. //
  7. // Created by sihai on 10/9/14.
  8. // Copyright (c) 2014 mtop. All rights reserved.
  9. //
  10. #import <Foundation/Foundation.h>
  11. #import "TBSDKMtopSecurityEnumMapping.h"
  12. #define KEY_AUTH_CODE @"authCode"
  13. #define KEY_DATA @"data"
  14. #define KEY_APPKEY @"appkey"
  15. #define KEY_ENV @"env"
  16. #define KEY_EXTEND_PARAS @"extendParas"
  17. #define KEY_USE_WUA @"useWua"
  18. #define KEY_X_SIGN @"x-sign"
  19. #define KEY_X_UMT @"x-umt"
  20. #define KEY_X_MINI_WUA @"x-mini-wua"
  21. #define KEY_X_SGEXT @"x-sgext"
  22. #define KEY_X_WUA @"wua"
  23. @protocol SecurityProtocol <NSObject>
  24. /**
  25. * 获取OpenSecurityGuardManager全局单例对象
  26. *
  27. * @return OpenSecurityGuardManager全局对象
  28. */
  29. + (id) getInstance;
  30. + (id) getReturnTypeByteArray;
  31. + (id) createInt32: (int32_t) data;
  32. + (id) createByteArray: (NSData*) data;
  33. + (id) createString: (NSString*) data;
  34. + (id) createMutableByteArray: (NSMutableData*) data;
  35. - (id) invokeAVMP: (NSString*) idunctionName
  36. returnType:(id) returnType, ...;
  37. /**
  38. * 根据传入的 protocol 获取接口
  39. *
  40. * @param protocol 要获取的 interface
  41. *
  42. * @return 返回的实现 protocol 的对象
  43. */
  44. - (id) getInterface: (Protocol*) protocol;
  45. - (id) createAVMPInstance: (NSString*) authCode
  46. byteCodeName:(NSString*) bcName;
  47. /**
  48. * 获取静态数据存储接口
  49. *
  50. * @return 返回静态数据存储接口,失败时nil
  51. */
  52. - (id) getStaticDataStoreComp;
  53. /**
  54. * 获取安全签名接口
  55. *
  56. * @return 返回签名接口,失败时nil
  57. */
  58. - (id) getSecureSignatureComp;
  59. /**
  60. * 获取UMID接口
  61. *
  62. * @return 返回UMID接口,失败返回nil
  63. */
  64. - (id) getUMIDComp;
  65. /**
  66. * 根据传入的参数生成参数结构体对象
  67. *
  68. * @param appKey appkey,应用当前使用的appkey
  69. * @param paramDict 存储业务参数的dictionary对象
  70. * @param requestType 请求类型
  71. *
  72. * @return 生成的参数结构体对象, autorelease对象
  73. */
  74. + (id) createParamContextWithAppKey: (NSString*) appKey
  75. paramDict: (NSDictionary*) paramDict
  76. requestType: (NSInteger) requestType;
  77. /**
  78. * 发起签名请求
  79. *
  80. * @param paramContext 包含签名所需要参数的结构体对象
  81. *
  82. * @param authCode SDK的授权码,不传或为空串,使用默认加密文件
  83. *
  84. * @return 签名值,失败时返回nil
  85. */
  86. - (NSString*) signRequest: (id) paramContext
  87. authCode: (NSString*) authCode;
  88. /**
  89. * 根据index找到对应的appkey(index从0开始,按在无线保镖网站生成加密文件时填写的顺序排列)
  90. *
  91. * @param index key的顺序
  92. *
  93. * @param authCode SDK的授权码,不传或为空串,使用默认加密文件
  94. *
  95. * @return index对应的appkey,调用失败时返回nil
  96. */
  97. - (NSString*) getAppKey: (NSNumber*) index
  98. authCode: (NSString*) authCode;
  99. /**
  100. * 获取OpenSecurityBodyComp全局单例对象
  101. *
  102. * @return OpenSecurityBodyComp全局对象
  103. */
  104. - (id) getSecurityBodyComp;
  105. /**
  106. * 返回UMID Token,长度为32的字符串
  107. *
  108. * @return 如果失败,返回内容为24个0的字符串
  109. */
  110. - (NSString*) getSecurityToken;
  111. /**
  112. * 初始化umid
  113. *
  114. * @param appKey appkey,注意此值要与 dpEnv 对应,线上环境对应传线上的 appkey,以此类推
  115. * @param sdpEnv 接入应用当前的环境,包括线上,预发,线上
  116. * @param authCode 授权码,指定umid使用哪个加密文件,注意入参appkey在authCode对应的图片中要存在
  117. * @param handler 初始化结果回调,本函数必须在主线程内完成(推荐在 appdelegate中,应用启动时调用)
  118. *
  119. */
  120. - (BOOL) initUMID: (NSString*) appKey
  121. environment: (SDP_ENVIRONMENT_MTOP) sdpEnv
  122. authCode: (NSString*) authCode
  123. handler: (void (^) (NSString* securityToken, NSError* error)) handler;
  124. /**
  125. 获取风控参数
  126. @param timeStamp 时间戳,要与携带人机识别参数的请求中的timestamp对应
  127. @param appKey 计算人机识别参数时对应的appkey(可以与初始化时的appkey不一致)
  128. @param authCode 授权码,手淘中传nil (安全图片yw_1222_xxx.jpg的图片,参数就传xxx)
  129. @param extendParam 扩展信息,可为nil
  130. @param flag 控制人机识别获取到的具体数据内容
  131. @param env 环境信息
  132. @param error 错误信息
  133. @return 用户昵称,获取失败返回nil
  134. */
  135. - (NSString*) getSecurityBodyDataEx: (NSString*) timeStamp
  136. appKey: (NSString*) appKey
  137. authCode:(NSString*) authCode
  138. extendParam:(NSString*) extendParam
  139. flag:(int) flag
  140. env:(int) env
  141. error:(NSError *__autoreleasing*) error;
  142. @end
  143. /********************************************************************************************************************
  144. * 无线保镖新接口, 后续所有签名均迁移到该接口
  145. ********************************************************************************************************************/
  146. @protocol TBSecurityGuardOpenMiddleTierGenericProtocol <NSObject>
  147. /**
  148. * init MiddleTier Generic Cponent
  149. * @param paramDict <NSString, object> paras
  150. * "auth_code" : (NSString*) [optional] if not set, default search yw_1222.jpg and yw_1222_mwua.jpg
  151. * @return init result
  152. */
  153. -(BOOL) init:(NSDictionary*) paramDict error:(NSError* __autoreleasing*)error;
  154. /**
  155. * get all security factors with only one function call
  156. *
  157. * @param paramDict <NSString, object> paras
  158. * "appkey" : (NSString*) [required] appkey for sign
  159. * "data" : (NSString*) [required] data need to be signed;
  160. * "useWua" : (NSNumber*) [required] get wua or not (BOOL)value;
  161. * "env" : (NSNumber*) [optional] 0:online, 1:pre, 2:daily if not set default set online
  162. * "authCode" : (NSString*) [optional] if not set, default search yw_1222.jpg and yw_1222_mwua.jpg
  163. * "extendParas" : (NSDictionary*) [optional] extra datas e.g. api name, page id, ..
  164. * @return sign result dictionary
  165. * "x-sign" : (NSString*) [required] sign result
  166. * "x-miniwua" : (NSString*) [required] mini wua string result
  167. * "wua" : (NSString*) [optional] only required when call with high risk business, like [MTOP-SDK useWua]
  168. * "wsg-ext1" : (NSString*) [optional] extend wsg result1
  169. * "wsg-ext2" : (NSString*) [optional] extend wsg result2
  170. */
  171. -(NSDictionary*) getSecurityFactors:(NSDictionary*) paramDict error:(NSError* __autoreleasing*)error;
  172. @end