iOS端接入
2023.05.12 10:49:43
SDK集成步骤
- 导入SDK
拖拽SecurityKit.framework
文件到Xcode工程内(请勾选Copy items if needed选项)。
进入Build Phase
,在Copy Bundle Resources
选项中,添加SecurityLit.bundle
文件(文件位于SecurityKit.framework
目录下)。
- 添加依赖库
在Build Phase
-> Link Binary With Libraries
里面添加SDK依赖库:libc++.tbd
库。
- 项目配置
在Build Setting
-> Other Linker Flags
中,添加-ObjC
选项。
- 注意事项
如已存在上述的系统库,则忽略。
SDK最低兼容版本是iOS 8.0。
SDK使用方法
Object-C工程
- 在项目需要使用SDK的文件中引入SecurityKit SDK的头文件,如下:
#import <SecurityKit/NTESSecurityKit.h>
- 在需要使用安全组件的地方,调用安全组件的API,示例如下:
-(void)XXXX {
/*
* 本示例演示了安全通信功能,客户端生成安全通信密文的调用
*/
NSString *input = @"this is a test case!";
NSError *error;
// 指定加密方式(常规加密和国密),默认使用常规加密算法
[NTESSecurityKit shareInstance].encryptType = NSSKSecurityEncrpytNormalType;
NSString *inputEnc = [[NTESSecurityKit shareInstance] EncryprStirngToServer:input error:&error];
// 将加密后的数据,发送给服务端进行解析。
}
Swift工程
- 在项目对应的 bridging-header.h 中引入头文件,如下:
#import <SecurityKit/NTESSecurityKit.h>
备注: Swift 调用 Objective-C 需要一个名为 <工程名>-Bridging-Header.h
的桥接头文件。
文件的作用为 Swift 调用 Objective-C 对象提供桥接。
- 其它调用同上。
SDK接口说明
枚举定义
- SDK错误类型枚举定义
typedef NS_ENUM(NSInteger, NSSKSecurityError){
NSSKSecurityInvalidParameterError = 1, // 输入无效参数
NSSKSecurityBundleIDMismatchError , // Bundle Identifier不匹配
NSSKSecurityProtocolError , // 数据格式错误
NSSKSecurityInvalidSeverDataError , // 服务器的数据被篡改
NSSKSecurityUnkownError ,
NSSKSecurityKeyExistError , // 本地数据索引已存在
NSSKSecurityKeyDoesNotExistError , // 本地数据索引不存在
NSSKSecurityFileOperationError , // 本地数据文件操作失败
NSSKSecurityDataEncryptDecryptError , // 数据加解密失败
NSSKSecurityKeyError , // 密钥错误
NSSKSecurityOutofValidPeriodError , // 超出使用期错误
NSSKSecurityWhiteBoxEncryptError , // 白盒加密错误
NSSKSecurityWhiteBoxDecryptError , // 白盒解密错误
};
- 加密方式
typedef NS_ENUM(NSInteger, NSSKSecurityEncrpytType){
NSSKSecurityEncrpytNormalType = 0, // 默认加解密
NSSKSecurityEncrpytGMType, // 国密加解密sm2,sm3,sm4
};
- 接口参数
/**
* @说明 使用此参数指定加解密方式,可选类型见枚举值NSSKSecurityEncrpytType,若不传,使用默认加解密方式。
*/
@property (nonatomic) NSSKSecurityEncrpytType encryptType;
- 接口类单例
+(NTESSecutiryKit *)shareInstance;
- 调用方式:
NTESSecurityKit *securityKit = [NTESSecutiryKit shareInstance];
- 接口描述:返回接口类单例。
- 返回值:无
- 参数:无
安全存储功能
- 存储字符串数据到本地
-(BOOL)putString:(NSString *)input key:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] putString:@"your_input_string" key:@"your_key" error:&error];
接口说明:SDK将需要加密存储的字符串进行加密,并存储在本地。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否存储成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
input | NSString | 待存储的明文 |
key | NSString | 检索该明文的索引 |
error | NSError | 存储过程中的错误信息 |
- 获取本地存储的字符串数据
-(NSString *)getString:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
NSString *str = [[NTESSecutiryKit shareInstance] getString:@"your_key" error:&error];
接口说明:取出存储在本地的字符串,返回解密后的明文。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | NSString | 解密后的明文 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
key | NSString | 检索明文的索引 |
error | NSError | 获取过程中的错误信息 |
- 更新本地存储的字符串数据
-(BOOL)updateString:(NSString *)input key:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] updateString:@"your_input_string" key:@"your_key" error:&error];
接口说明:更新本地存储的字符串数据。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否更新成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
input | NSString | 新的明文 |
key | NSString | 检索待更新明文的索引 |
error | NSError | 更新过程中的错误信息 |
- 删除本地存储的字符串数据
-(BOOL)removeString:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] removeString:@"your_key" error:&error];
接口说明:删除存储在本地的字符串数据
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否删除成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
key | NSString | 检索需要删除内容的索引 |
error | NSError | 删除过程中的错误信息 |
- 存储Binary数据到本地
-(BOOL)putBinary:(NSData *)input key:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] putBinary:yourData key:@"your_key" error:&error];
接口说明:SDK将需要加密存储的Binary数据进行加密,并存储在本地。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否存储成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
input | NSString | 待存储的Binary数据 |
key | NSString | 检索该数据的索引 |
error | NSError | 存储过程中的错误信息 |
- 获取本地存储的Binary数据
-(NSData *)getBinary:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
NSData *yourData = [[NTESSecutiryKit shareInstance] getBinary:@"your_key" error:&error];
接口说明:取出存储在本地的Binary数据,返回解密后的原始数据。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | NSData | 解密后的原始数据 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
key | NSString | 检索数据的索引 |
error | NSError | 获取过程中的错误信息 |
- 更新本地存储的Binary数据
-(BOOL)updateBinary:(NSData *)input key:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] updateBinary:yourData key:@"your_key" error:&error];
接口说明:更新本地存储的Binary数据。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否更新成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
input | NSData | 新的Binary数据 |
key | NSString | 检索待更新明文的索引 |
error | NSError | 更新过程中的错误信息 |
- 删除本地存储的Binary数据
-(BOOL)removeBinary:(NSString *)key error:(NSError **)error;
调用方式:
NSError *error;
BOOL success = [[NTESSecutiryKit shareInstance] removeString:@"your_key" error:&error];
接口说明:删除存储在本地的Binary数据。
返回值:
返回值名称 | 返回值类型 | 返回值说明 |
---|---|---|
-- | BOOL | 是否删除成功 |
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
key | NSString | 检索需要删除内容的索引 |
error | NSError | 删除过程中的错误信息 |