Blame view

HHVDoctorSDK/SecurityKit.framework/Headers/NTESSecurityKit.h 9.68 KB
shmily authored
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
//
//  NTESSecurityKit.h
//  NTESSecurityKit
//
//  Created by NetEase on 17/5/30.
//  Copyright © 2017年 NetEase. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, NSSKSecurityError){
    NSSKSecurityInvalidParameterError = 1,   // 输入无效参数
    NSSKSecurityBundleIDMismatchError    ,   // Bundle Identifier不匹配
    NSSKSecurityProtocolError            ,   // 数据格式错误
    NSSKSecurityInvalidSeverDataError    ,   // 服务器的数据被篡改
    NSSKSecurityUnkownError              ,
    NSSKSecurityKeyExistError            ,   // 本地数据索引已存在
    NSSKSecurityKeyDoesNotExistError     ,   // 本地数据索引不存在
    NSSKSecurityFileOperationError       ,   // 本地数据文件操作失败
    NSSKSecurityDataEncryptDecryptError  ,   // 数据加解密失败
    NSSKSecurityKeyError                 ,   // 密钥错误
    NSSKSecurityOutofValidPeriodError    ,   // 超出使用期错误
    NSSKSecurityWhiteBoxEncryptError     ,   // 白盒加密错误
    NSSKSecurityWhiteBoxDecryptError     ,   // 白盒解密错误
};

@interface NTESSecurityKit : NSObject

/**
 *  单例
 *
 *  @return         NTESSecurityKit对象
 */
+ (NTESSecurityKit *)sharedInstance;

/**
 *  客户端对输入的明文数据进行加密,然后返回密文,这个密文是发送到服务器的
 *
 *  @param input    需要加密保护的字符串数据
 *  @param error    如果加密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 *
 *  @return         加密的结果,UTF-8编码
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance
 */
- (NSString *)encryptStringToServer:(NSString *)input error:(NSError **)error;

/**
 *  客户端对输入的密文数据(密文来自服务器)进行解密,然后返回明文
 *
 *  @param input    需要解密还原的字符串数据
 *  @param error    如果解密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 *
 *  @return         解密的结果,UTF-8编码
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance; (2)输入参数input是来自服务器返回的加密结果
 */
- (NSString *)decryptStringFromServer:(NSString *)input error:(NSError **)error;

/**
 *  客户端对输入的Binary数据进行加密,然后返回密文,该密文用于发送至服务端
 *  
 *  @param input     需要加密保护的Binary数据
 *  @param error     如果加密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 
 *  @return          加密的结果,UTF-8编码
 *  @说明             (1)在调用该接口前,确定已调用 sharedInstance
 */
- (NSString *)encryptBinaryToServer:(NSData *)input error:(NSError **)error;

/**
 *  客户端对输入的密文数据(密文来自服务器)进行解密,然后返回解密后的Binary
 *
 *  @param input    需要解密还原的字符串数据
 *  @param error    如果解密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 *
 *  @return         解密的结果,Binary数据
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance; (2)输入参数input是来自服务器返回的加密结果
 */
- (NSData *)decryptBinaryFromServer:(NSString *)input error:(NSError **)error;

/**
 *  SDK将需要加密存储的字符串进行加密,并存储在本地
 *  
 *  @param input    需要加密存储的字符串
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果加密或存储出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         加密存储是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)putString:(NSString *)input key:(NSString *)key error:(NSError **)error;

/**
 *  取出存储在本地的字符串,返回解密后的明文
 *
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果取出本地存储的数据出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回nil
 *
 *  @return         本地存储的对应于key的数据,数据将被解密,返回解密后的明文
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (NSString *)getString:(NSString *)key error:(NSError **)error;

/**
 *  更新本地存储的字符串数据
 *
 *  @param input    更新的字符串
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果加密或存储出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         加密存储是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)updateString:(NSString *)input key:(NSString *)key error:(NSError **)error;
/**
 *  删除存储在本地的字符串
 *
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果删除本地存储的数据出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         删除本地存储的数据是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)removeString:(NSString *)key error:(NSError **)error;

/**
 *  SDK将需要加密存储的Binary进行加密,并存储在本地
 *
 *  @param input    需要加密存储的Binary
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果加密或存储出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         加密存储是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)putBinary:(NSData *)input key:(NSString *)key error:(NSError **)error;

/**
 *  取出存储在本地的Binary数据,返回解密后的明文
 *
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果取出本地存储的数据出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回nil
 *
 *  @return         本地存储的对应于key的数据,数据将被解密,返回解密后的明文
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (NSData *)getBinary:(NSString *)key error:(NSError **)error;

/**
 *  更新本地存储的Binary数据
 *
 *  @param input    更新的Binary
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果加密或存储出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         加密存储是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)updateBinary:(NSData *)input key:(NSString *)key error:(NSError **)error;
/**
 *  删除存储在本地的Binary数据
 *
 *  @param key      用户自定义的key,用于索引本地数据
 *  @param error    如果删除本地存储的数据出现错误,error将会被设置,error的code对应 NSSKSecurityError;接口返回NO
 *
 *  @return         删除本地存储的数据是否成功,成功返回YES,失败返回NO
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (BOOL)removeBinary:(NSString *)key error:(NSError **)error;

/**
 *  SDK将明文白盒加密,返回密文
 *  @param input    需要加密保护的字符串数据
 *  @param error    如果加密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil
 *
 *  @return         加密的结果
*  @说明            (1)在调用该接口前,确定已调用 sharedInstance
 */
- (NSString *)getWBEncryptString:(NSString *)input error:(NSError **)error;

/**
 *  SDK将白盒加密的密文,通过白盒解密,返回解密后的明文
 *
 *  @param input    需要解密还原的字符串数据
 *  @param error    如果解密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 *
 *  @return         解密的结果
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance;
 */
- (NSString *)getWBDecryptString:(NSString *)input error:(NSError **)error;

/**
 *  客户端对输入的Binary数据进行白盒加密,返回白盒密文
 *
 *  @param input     需要加密保护的Binary数据
 *  @param error     如果加密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 
 *  @return          加密的结果
 *  @说明             (1)在调用该接口前,确定已调用 sharedInstance
 */
- (NSString *)getWBEncryptBinary:(NSData *)input error:(NSError **)error;

/**
 *  客户端对输入的白盒密文进行解密,然后返回解密后的Binary
 *
 *  @param input    需要解密还原的字符串数据
 *  @param error    如果解密出现错误,error会被设置, error的code对应 NSSKSecurityError;接口返回值为nil。
 *
 *  @return         解密的结果,Binary数据
 *  @说明            (1)在调用该接口前,确定已调用 sharedInstance; (2)输入参数input是来自服务器返回的加密结果
 */
- (NSData *)getWBDecryptBinary:(NSString *)input error:(NSError **)error;

/* 查看SDK的版本号
 *
 * @return          SDK的版本信息
 */
- (NSString *)sdkVersion;

/* 判断设备是否越狱
 *
 * @return, BOOL YES:越狱;NO:非越狱
 */
- (BOOL)isJailbreak;

@end