# CISSSDK的接口【应用APP使用】
# 连接卡
- 定义:
| 连接卡接口 | |
|---|---|
| 接口名称 | connectService |
| 接口描述 | 建立和卡的连接 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| cfig | ConnectConfig | 连接配置 | |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
ConnectConfig定义:
| 返回值 | 方法和描述 |
|---|---|
| ConnectConfig | [[ConnectConfig alloc] init] |
ConnectConfig定义
| 参数 | 描述 |
|---|---|
| mac | 通过mac地址查找Simkey卡盾 |
| phoneNum | 通过手机号查找Simkey卡盾 |
| type | NSConnectWithPhoneNum使用手机号连接 NSConnectWithMac使用Mac地址连接 |
| noticeServer | notifyConnectResult() 通知连接结果, 用于排查错误。需要网络 |
注意:如果要用蓝牙连接方式,那么使用其中一种就行了,如果传入多个,则最后一个设置生效,之前的会被覆盖。
- 返回类型:BOOL
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回:YES 成功连接到卡,NO 失败
# 读取证书
- 定义:
| 读取证书接口 | |
|---|---|
| 接口名称 | readCer |
| 接口描述 | 读取证书, 如果没有返回空 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| cerType | int | 证书类型 | 1:签名证书 2:加密证书 |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
返回类型:NSData 返回 NSData,成功获取cer,返回nil ,获取失败。
代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData *cer = [[CISS sharedCISS:self] readCer:1 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
# 签名
- 定义:
| 签名接口 | |
|---|---|
| 接口名称 | privSign |
| 接口描述 | 用签名密钥对的私钥对 Hash串/原文 进行签名 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| data | NSData | 原文 | 不能为空 |
| dataType | int | 数据类型 | 0:原文. 1: hash值 区别在于是否需要经过hash |
| pinFlag | int | 是否输入pin (目前没有作用,强制弹窗) | 0:不用输入 1:需要输入 |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
返回类型:NSData
代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData *signed = [[CISS sharedCISS:self] privSign:[@"代签名数据原文" dataUsingEncoding:NSUTF8StringEncoding] dataType:0 pinFlag:1 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
# P1签名
- 定义:
| 签名接口 | |
|---|---|
| 接口名称 | privSignP1 |
| 接口描述 | 用签名密钥对的私钥对 Hash串/原文 进行签名,PKCS#1格式返回 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| data | NSData | 原文 | 不能为空 |
| dataType | int | 数据类型 | 0:原文1(在0016的预处理的基础上,对原文多做了一次sm3) 1: hash值 2: 原文2( 按照0016的预处理操作 ) 区别在于是否需要经过hash 推荐使用CissInterConst.SignDataType里面的常量定义 |
| pinFlag | int | 是否输入pin (目前没有作用,强制弹窗) | 0: 不用输入 1:需要输入 推荐使用CissInterConst.IsNeedPin里面的常量定义 |
| error | NSError ** | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:NSData
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData* result = [[CISS sharedCISS:self] privSignP1:[@"hello Simkey!" dataUsingEncoding:NSUTF8StringEncoding] withType:1 andPin:0 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
备注:"hello Simkey!"为签名数据,系统正式上线后需要改成有意义的文字,签名验签成功后,签名数据具有法律效应。
- 返回十六进制显示:
304402202E12D60DFD16CB883811525D0E31D4C37898422CE6D25B7C9AB5471374984C8F022078AB926BD4E2094DAF2ACD5FA61A672BE11B3DA22B016AD0057634C18236A617
1
# P7签名
- 定义:
| 签名接口 | |
|---|---|
| 接口名称 | privSignP7 |
| 接口描述 | 用签名密钥对的私钥对 原文 进行签名,PKCS#7格式返回, 目前仅支持国密算法 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| data | NSData | 原文 | 不能为空 |
| dataType | int | 数据类型 | 0:原文 1(在0016的预处理的基础上,对原文多做了一次sm3). 2: 原文2( 按照0016的预处理操作 ) 推荐使用CissInterConst.SignDataType里面的常量定义 |
| pinFlag | int | 是否输入pin (目前没有作用,强制弹窗) | 0: 不用输入 1:需要输入 推荐使用CissInterConst.IsNeedPin里面的常量定义 |
| attach | BOOL | 是否为attach模式 | YES: attach模式, 返回结果带原文 NO:detach模式, 返回结果不带原文 |
| error | NSError ** | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:NSData
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData* result = [[CISS sharedCISS:self] privSignP7:[@"hello Simkey!" dataUsingEncoding:NSUTF8StringEncoding] withType:1 andPin:0 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
备注:"hello Simkey!"为签名数据,系统正式上线后需要改成有意义的文字,签名验签成功后,签名数据具有法律效应。
- 返回十六进制显示:
30820563060A2A811CCF550601040202A08205533082054F020101310E300C06082A811CCF550183110500301D060A2A811CCF550601040201A00F040D68656C6C6F2053696D6B657921A08204503082044C308203F3A003020102020A2ACC4C3A8D42DBABF70E300A06082A811CCF5501837530818A310B300906035504061302434E31343032060355040A0C2B53494D4B4559205355424F5244494E41544520434120436572746966696361746520417574686F726974793121301F06035504030C1853494D4B45594341205355424F5244494E41544520534D323110300E06035504080C074A69616E6753753110300E06035504070C074E616E4A696E67301E170D3231303830323031323935375A170D3232303830323031323935375A304A310F300D06035504030C06E982B9E5AE8131143012060355040A0C0B4349535320E5BA94E794A831143012060355040B0C0B3138313638303536363636310B300906035504061302434E3059301306072A8648CE3D020106082A811CCF5501822D0342000483628572D7061F9F77792E2DF52462B3662196C8E3DFD37AAAA551B6DE47C870A5E79D23C78C3B9F35357CACA6A75D4A9E6D2B30ABE4C36FEE8464B8EBC2C151A382027E3082027A3081AD0603551D230481A53081A280145321FDEC21B5D1DF6D5941FC09C41369C0473903A17EA47C307A310B300906035504061302434E312B3029060355040A0C2253494D4B45594341524F4F5420436572746966696361746520417574686F72697479311A301806035504030C1153494D4B4559434120524F4F5420534D323110300E06035504080C074A69616E6753753110300E06035504070C074E616E4A696E67820A2ACC40D95A9658239CDD301D0603551D0E041604143A70DD60CC0E749FC3CF4E1B44E78A4B33462E94300E0603551D0F0101FF0404030206C030480603551D200441303F303D06082B060105050702013031302F06082B06010505070201162368747470733A2F2F73696D6B65792E61736961696E666F2D7365632E636F6D2F6370733081B50603551D1F0481AD3081AA3081A7A025A023862168747470733A2F2F73696D6B65792E746563682F73696D6B65792D736D2E63726CA27EA47C307A310B300906035504061302434E312B3029060355040A0C2253494D4B45594341524F4F5420436572746966696361746520417574686F72697479311A301806035504030C1153494D4B4559434120524F4F5420534D323110300E06035504080C074A69616E6753753110300E06035504070C074E616E4A696E67307606082B06010505070101046A3068303406082B06010505073002862868747470733A2F2F73696D6B65792E61736961696E666F2D7365632E636F6D2F726F6F742E637274303006082B06010505073001862468747470733A2F2F73696D6B65792E61736961696E666F2D7365632E636F6D2F6F637370300C0603551D130101FF04023000301106096086480186F8420101040403020780300A06082A811CCF55018375034700304402204ACDB2BBF1832CD1C59D41258567CC9A3FA4F31ADCE11AE172D5750B89DAAAC8022050D83B4E7B28421FB554D4BA12183D4A599BF214D05245749E4A7D57C6E54FF83181C63081C30201013058304A310F300D06035504030C06E982B9E5AE8131143012060355040A0C0B4349535320E5BA94E794A831143012060355040B0C0B3138313638303536363636310B300906035504061302434E020A2ACC4C3A8D42DBABF70E300C06082A811CCF550183110500300D06092A811CCF5501822D01050004473045022100D1DB527C88DCEC48C64EE863EDC90E852D26B1B17A8C2220C6F4E7787DBAB73602200975D053536FC0B09C01EA8098D8431B1CBC4B8A0D262E61D1EC9420BAFFA075
1
# 公钥加密
- 定义:
| 加密接口 | |
|---|---|
| 接口名称 | pubKeyEncrypt |
| 接口描述 | 用密钥对的公钥对数据进行加密 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| cerType | BOOL | 是否是签名密钥对加密 | YES:使用签名公钥加密; NO:使用加密公钥加密 |
| data | NSData | 要加密的数据 | 无 |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
返回:NSData
代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData *encrypted = [[CISS sharedCISS:self] pubKeyEncrypt:NO data:[@"代加密数据原文" dataUsingEncoding:NSUTF8StringEncoding] error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
# 私钥解密
- 定义:
| 解密接口 | |
|---|---|
| 接口名称 | priKeyDecrypt |
| 接口描述 | 用密钥对的私钥对密文进行解密 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| data | NSData | 密文 | |
| CerType | BOOL | 是否是签名密钥对加密 | YES:使用签名私钥解密; NO:使用加密私钥解密 |
| pinFlag | int | 是否需要输入pin(目前没有作用,强制弹窗) | 0:不用输入 1:需要输入 |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回:NSData
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData *decrypted = [[CISS sharedCISS:self] priKeyDecrypt:[@"代加密数据原文" dataUsingEncoding:NSUTF8StringEncoding] CerType:NO pinFlag:1 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
# 修改pin码
- 定义:
| 修改pin码接口 | |
|---|---|
| 接口名称 | modifyPin |
| 接口描述 | 修改pin码 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:BOOL
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
BOOL modifyResult = [[CISS sharedCISS:self] modifyPin:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回:YES 修改成功,NO 修改失败
# 申请重置Pin
- 定义:
| 申请重置pin码接口 | |
|---|---|
| 接口名称 | applyResetUKeyPin |
| 接口描述 | 申请重置pin码 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:BOOL
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
BOOL applyResult = [[CISS sharedCISS:self] applyResetUKeyPin:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回:YES 申请重置成功,NO 申请重置失败
# 重置Pin
- 定义:
| 重置pin码接口 | |
|---|---|
| 接口名称 | resetPin |
| 接口描述 | 重置pin码 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:BOOL
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
BOOL resetResult = [[CISS sharedCISS:self] resetPin:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回:YES 重置成功,NO 重置失败
# 获取手机号
- 定义:
| 获取手机号接口 | |
|---|---|
| 接口名称 | getPhoneNumber |
| 接口描述 | 获取手机号码 Sdk 不保证手机是否和卡一致,手机合法性由应用APP保证, 获取手机号接口仅作为参考。 卡仅作为U盾使用,保证签名合法性 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:NSString
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSString *phNumber = [[CISS sharedCISS:self] getPhoneNumber:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回:NSString类型手机号
# 上传日志
- 定义:
| 上传日志 | |
|---|---|
| 接口名称 | uploadLogFile |
| 接口描述 | 上传日志 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述 |
- 返回类型:BOOL
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
BOOL uploadResult = [[CISS sharedCISS:self] uploadLogFile:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回: YES:成功 NO:失败
# 设置PIN弹窗回调监听
- 定义:
| 回调监听接口 | |
|---|---|
| 接口名称 | cissManagerFindError |
| 接口描述 | 设置PIN弹出回调监听(创建CISSSDK对象后监听), 监听PIN输入框的显示和隐藏状态 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| ErrorCode | NSInteger | 错误码 | |
| description | NSString | 错误信息描述 |
- 返回类型:void
- 代码示例
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
NSLog(@"loginview cissManagerFindError %@", description);
if ([description containsString:@"cancel input pin"] && ErrorCode == 4) {
[self outputText:@"用户取消输入"];
}
if ([description containsString:@"PIN锁定"]) {
[self outputText:@"PIN锁定"];
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 获取OTP密码【动态口令】
- 定义:
| 获取动态口令接口 | |
|---|---|
| 接口名称 | getOTP |
| 接口描述 | 获取otp密码, 使用之前需要先 导入OTP Key |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| tc | int | 以秒为单位的口令变化周期 0<tc<=60 | 无 |
| c | Byte * | 参与预算的因子 ,固定四字节,可以为空 | 无 |
| q | NSString | 认证双方输入的挑战因子,accii码长度大于等于4 可以为空 | 无 |
| otpLength | int | otp的长度, 大于等于6 | 无 |
| error | NSError * | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述异步回调提示和结果,可以为空 |
- 返回类型:NSString类型值, 长度为otpLength
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSInteger time = 60;
NSString *otpCode = [[CISS sharedCISS:del] getOTP:time c:nil q:nil otpLength:6 error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回: NSString格式OTP码
# P7数字信封加密
- 定义:
| P7数字信封加密 | |
|---|---|
| 接口名称 | p7EnvelopEncrypt |
| 接口描述 | p7格式的数字信封加密, 目前仅支持国密算法 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| cert | NSData | 证书 | 一般传入加密证书而不是签名证书 |
| data | NSData | 要加密的数据 | 无 |
| error | NSError ** | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述异步回调提示和结果,可以为空 |
- 返回:NSData
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData *cerData = [[CISS sharedCISS:self] readCer:2 error:&err];
NSData* envelope = [[CISS sharedCISS:self] p7EnvelopEncrypt:[@"simkey P7Envelop test" dataUsingEncoding:NSUTF8StringEncoding] whitCert:cerData error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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
- 返回十六进制显示:
30820156060A2A811CCF550601040203A0820146308201420201013181ED3081EA0201013058304A310F300D06035504030C06E982B9E5AE8131143012060355040A0C0B4349535320E5BA94E794A831143012060355040B0C0B3138313638303536363636310B300906035504061302434E020A2ACC4C3A8D42E7AFDFD7300D06092A811CCF5501822D030500047C307A022100DC22A9613A5615F43C4F6A9923FE08E3268BF36703746E2BE1E5BC122CCB00D60221008D1DA31B5F46193B84C24C2AD28521E1438C3DFF33264DA63571EE3B9172127F04207139D5BE94DDE0F297896CDFC8382BF97862F2B0E7EE6B9F8486856F2E5B1D170410A45291865324EC24FEF01A6EFFA8D43E304D060A2A811CCF550601040201301D06092A811CCF550168010404107F631A2BA904A37CD0A9542E2CF684EB802065C43EEFA0619709A8F83F089F4C80F7CE4F5BFDCD805EF57CE141F2C9978A73
1
# P7数字信封解密
- 定义:
| P7数字信封解密 | |
|---|---|
| 接口名称 | p7EnvelopDecrypt |
| 接口描述 | p7格式的数字信封解密, 目前仅支持国密算法 |
| 使用者 | 应用客户端 |
- 输入参数:
| 参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|
| cerType | BOOL | 是否是签名密钥对加密 | YES:使用签名私钥解密; NO:使用加密私钥解密 |
| envelope | NSData | 要解密的数字信封 | 无 |
| error | NSError ** | 错误信息 | NSError code错误码 userInfo[NSLocalizedDescriptionKey]错误信息描述异步回调提示和结果,可以为空 |
- 返回:NSData
- 代码示例
@interface ViewController ()<CISSProgressDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[[CISS sharedCISS:self] initCISS:@"从平台获取的CISS AppId" bundle:@"提交给平台的BUNDLE ID" key:@"从平台获取的CISS AppKey"];
NSError *err;
ConnectConfig *cfig = [[ConnectConfig alloc] init];
//当使用mac地址识别SimKey盾时
//cfig.mac = @"SimKey卡盾MAC地址";
//cfig.type = NSConnectWithMac;
//当使用手机号识别SimKey盾时
cfig.phoneNum = @"SimKey卡盾手机号";
cfig.type = NSConnectWithPhoneNum;
cfig.noticeServer = YES;//YES:通知服务器 NO:不通知服务器
BOOL connResult = [[CISS sharedCISS:self] connectService:cfig error:&err];
NSData* result = [[CISS sharedCISS:self] p7EnvelopDecrypt:envelope whitCerType:NO error:&err];
}
#pragma mark - CISSProgressDelegate
- (void)cissManagerStartAction:(NSString *)description{
//开始被调用
}
- (void)cissManagerDoingAction:(NSString *)description{
//正在被调用
}
- (void)cissManagerFindError:(NSInteger)ErrorCode andErrorDescription:(NSString *)description{
//执行遇到错误时调用
}
- (void)cissManagerFinishAction:(NSString *)description{
//执行结束时调用
}
@end
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
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