iOS端接入

2022.02.14 18:32:36

    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 *)getWBEncryptString:(NSString *)input error:(NSError **)error;
    
    • 调用方式
    	NSError *error;
    	NSString *str_enc = [[NTESSecurityKit sharedInstance] getWBEncryptString:input error:& error];
    
    • 接口说明

    SDK将明文白盒加密,返回白盒密文。

    • 返回值
    返回值名称 返回值类型 返回值说明
    -- NSString 白盒加密结果
    • 参数
    参数名称 参数类型 参数说明
    input NSString 需要加密保护的字符串数据
    error NSError 加密过程中的错误信息

    白盒加密Binary

    - (NSString *)getWBEncryptBinary:(NSData *)input error:(NSError **)error;
    
    • 调用方式
    	NSError *error;
    	NSString *str_enc = [[NTESSecurityKit sharedInstance] getWBEncryptBinary:input error:& error];
    
    • 接口说明

    SDK将输入的Binary数据白盒加密,返回白盒密文。

    • 返回值
    返回值名称 返回值类型 返回值说明
    -- NSString 白盒加密结果
    • 参数
    参数名称 参数类型 参数说明
    input NSData 需要加密保护的Binary数据
    error NSError 加密过程中的错误信息

    SDK 版本

    -(NSString *)sdkVersion;
    

    调用方式:

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

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

    返回值:

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

    参数说明:无

    Online Chat Tel:95163223