iOS端接入

2019.05.14 14:15:28

    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依赖库:libstdc++,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    ,   // 超出使用期错误
    	};
    

    接口类单例

    +(NTESSecutiryKit *)shareInstance;
    
    • 调用方式:
        NTESSecurityKit *securityKit = [NTESSecutiryKit shareInstance];
    
    • 接口描述:返回接口类单例。
    • 返回值:无
    • 参数:无

    通信协议加密功能

    • 字符串加密
    	-(NSString *)encryptStringToServer:(NSString *)input error:(NSError **)error;
    

    调用方式:

    	NSError *error;
    	NSString encString = [[NTESSecutiryKit shareInstance] encryptStringToServer:@"your_input_string" error:&error];
    

    接口描述:客户端对输入的明文数据进行加密,然后返回密文,这个密文是发送到服务器的。

    返回值:

    返回值名称 返回值类型 返回值说明
    ------ NSString 加密后的串

    参数说明:

    参数名称 参数类型 参数说明
    input NSString 待加密的原始串
    error NSError 加密过程中的错误信息
    • 字符串解密
    	-(NSString *)decryptStringFromServer:(NSString *)input error:(NSError **)error;
    

    调用方式:

    	NSError *error;
    	NSString decString = [[NTESSecutiryKit shareInstance] decryptStringFromServer:@"encryped_string_from_server" error:&error];
    

    接口描述: 客户端对输入的密文数据(密文来自服务器)进行解密,然后返回明文。

    返回值:

    返回值名称 返回值类型 返回值说明
    -- NSString 解密后的串

    参数说明:

    参数名称 参数类型 参数说明
    input NSString 待解密的服务端密文
    error NSError 解密过程中的错误信息
    • Binary数据加密
    	-(NSString *)encryptBinaryToServer:(NSData *)input error:(NSError **)error;
    

    调用方式:

    	NSError *error;
    	NSString encString = [[NTESSecutiryKit shareInstance] encryptBinaryToServer:yourData error:&error];
    

    接口描述:客户端对输入的Binary数据进行加密,然后返回密文,该密文用于发送至服务端。

    返回值:

    返回值名称 返回值类型 返回值说明
    -- NSString 加密后的串

    参数说明:

    参数名称 参数类型 参数说明
    input NSData 待加密的原始数据
    error NSError 加密过程中的错误信息
    • Binary数据解密
    	-(NSData *)decryptBinaryFromServer:(NSString *)input error:(NSError **)error;
    

    调用方式:

    	NSError *error;
    	NSData *decData = [[NTESSecutiryKit shareInstance] decryptBinaryFromServer:@"data_From_Server" error:&error];
    

    接口描述:客户端对输入的密文数据(密文来自服务器)进行解密,然后返回Binary。

    返回值:

    返回值名称 返回值类型 返回值说明
    -- NSData 解密后的Binary数据

    参数说明:

    参数名称 参数类型 参数说明
    input NSString 待解密的服务端密文
    error NSError 加密过程中的错误信息

    安全存储功能

    • 存储字符串数据到本地
        -(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 删除过程中的错误信息

    SDK 版本

    -(NSString *)sdkVersion;
    

    调用方式:

    NSString *version = [[NTESSecutiryKit shareInstance] sdkVersion];
    

    接口说明:获取SDK的版本信息。

    返回值:

    返回值名称 返回值类型 返回值说明
    -- NSString SDK版本信息

    参数说明:无

    在线咨询 电话咨询:95163223 免费试用