iOS端接入

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];
  • 接口描述:返回接口类单例。
  • 返回值:无
  • 参数:无

通信协议加密功能

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

调用方式:

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

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

返回值:

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

参数说明:

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

调用方式:

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

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

返回值:

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

参数说明:

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

调用方式:

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

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

返回值:

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

参数说明:

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

调用方式:

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

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

返回值:

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

参数说明:

参数名称参数类型参数说明
inputNSString待解密的服务端密文
errorNSError加密过程中的错误信息
Online Chat Tel:95163223