Verifiable Credential (자격증명서) 서비스를 적용하기 위한 사용자앱 Client 라이브러리 API를 정의
Example: Swift
let vcManager = VCManager.sharedInstance
Example: Objective-c
VCManager *vcManager = [VCManager sharedInstance];
Parameters:
Result:
Key | Type | Description |
---|---|---|
did | String | 발급기관 DID |
name | String | 발급기관 이름 |
Example: Swift
VCManager.sharedInstance.getIssuer(
successBlock: { code, msg in
print("getIssuer success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret:Array = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Array<Any> {
print("Issuer Array : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("getIssuer fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getIssuerWithSuccessBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"getIssuer success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSArray *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("Issuer Array : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"getIssuer fail : %@ : %@", code, msg);
}];
Parameters:
Result:
Key | Type | Description |
---|---|---|
issueType | String | 발급기관 DID |
craimFormat | String | 발급기관 이름 |
name | String | 발급 가능 증명서 이름 |
type | String | 발급 가능 증명서 타입 |
Example: Swift
VCManager.sharedInstance.getIssuerVCType(
issuerDID: issuerDID ,
successBlock: { code, msg in
print("getIssuerVCType success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret:Array = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Array<Any> {
print("vcType Array : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("getIssuerVCType fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getIssuerVCTypeWithIssuerDID:issuerDID
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"getIssuerVCType success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSArray *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("vcType Array : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"getIssuerVCType fail : %@ : %@", code, msg);
}];
Returns
Return Types
Example: Swift
if !VCManager.sharedInstance.existVC() {
// 발급받은 VC 무
}else{
// 발급받은 VC 유
}
Example: Objective-c
if(![[VCManager sharedInstance] existVC]){
// 발급받은 VC 무
}else{
// 발급받은 VC 유
}
Parameters:
Example: Swift
VCManager.sharedInstance.registVC(
issuerDID: issuerDID,
vcType: vcType,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] registVCWithIssuerDID:issuerDID
vcType:vcType
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Code | Description |
---|---|
0000 | 정상 인증서 |
8003 | 만료or폐기 인증서 |
Example: Swift
VCManager.sharedInstance.getVCStatus(
vcId: vcId,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getVCStatusWithVcId:vcId
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Returns
Return Types
Example: Swift
let result = VCManager.sharedInstance.getALLVCList()
print("result : \(result)")
Example: Objective-c
NSString *result = [[VCManager sharedInstance] getALLVCList];
NSLog(@"result : %@", result);
Returns
Return Types
Example: Swift
let vc:VCredential result = VCManager.sharedInstance.getVCDetailInfo(vcId: vcId)
print("vc Detail : \(vc)")
Example: Objective-c
VCredential *vc = [[VCManager sharedInstance] getVCDetailInfoWithVcID:vcId];
NSLog(@"vc Detail : %@", result);
Parameters:
Example: Swift
VCManager.sharedInstance.showVC(
vcId: vcId,
submitPurpose: submitPurpose,
crtfcTy: crtfcTy,
verifyTy: verifyTy,
authType: authType ,
secretHash: secretHash,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] showVCWithVcId: vcId
submitPurpose: submitPurpose
crtfcTy: crtfcTy
verifyTy: verifyTy
authType: authType
secretHash: secretHash
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Example: Swift
VCManager.sharedInstance.unRegistVC(
vcId: vcId,
authType: authType ,
secretHash: secretHash,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] unRegistVCWithVcId: vcId
authType: authType
secretHash: secretHash
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Result:
Key | Type | Description |
---|---|---|
issuerDID | String | 발급기관 DID |
autoConfirm | String | 자동 승인 여부 |
name | String | 증명서 이름 |
holderDID | String | 사용자 DID |
id | String | 증명서 아이디 |
type | String | 증명서 타입 |
status | String | 증명서 상태 |
registDate | String | 등록일 |
Example: Swift
VCManager.sharedInstance.getVCRegistHistory(
successBlock: { code, msg in
print("success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret:Array = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Array<Any> {
print("History Array : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("getIssuer fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getVCRegistHistoryWithSuccessBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"getIssuer success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSArray *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("History Array : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"getIssuer fail : %@ : %@", code, msg);
}];
Parameters:
Returns
Return Types
Example: Swift
let vcType = VCManager.sharedInstance.getVCType(vcID: vcID)
print("증명서 타입 : \(vcType)")
Example: Objective-c
NSString *vcType = [VCManager sharedInstance] getVCTypeWithvcID: vcID];
NSLog(@"증명서 타입 : %@", vcType);
Parameters:
Returns
Return Types
Example: Swift
let vcID = VCManager.sharedInstance.getVCID(issuerDID: issuerDID, vcType: vcType)
print("증명서 아이디 : \(vcID)")
Example: Objective-c
NSString *vcID = [VCManager sharedInstance] getVCIDWithIssuerDID: vcID];
NSLog(@"증명서 아이디 : %@", vcID);
Returns
Return Types
Example: Swift
let result4 = VCManager.sharedInstance.getSavedVCTypeList()
let typeArray = VCManager.sharedInstance.getSavedVCTypeList()
print("증명서 타입 : \(typeArray)")
Example: Objective-c
NSArray *typeArray = [VCManager sharedInstance] getSavedVCTypeList];
NSLog(@"증명서 타입 : %@", typeArray);
Parameters:
Example: Swift
VCManager.sharedInstance.authMulti(
certType: certType,
certNumber: certNumber,
vcId: vcId,
authType: authType ,
secretHash: secretHash,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] authMultiWithCertType: certType
certNumber: certNumber
vcId: vcId
authType: authType
secretHash: secretHash
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Example: Swift
VCManager.sharedInstance.backupVC(
vcId: vcId,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] backupVCWithVcId:vcId
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
백업한 증명서(VC) 리스트를 조회한다.
Parameters:
Result:
Key | Type | Description |
---|---|---|
holderDID | String | 사용자 DID |
vcid | String | 증명서 아이디 |
credentialInfo | VCredential | 증명서 상세내역 |
Example: Swift
VCManager.sharedInstance.recoveryVC(
did: did,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] recoveryVCWithDHolderDid:did
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Result:
Key | Type | Description |
---|---|---|
submitResult | Bool | true : 성공, false : 실패 |
vpIdx | String | 증명서 제출 고유번호 |
delegationIdx | String | 위임 요청 고유번호 |
delegationResult | Bool | 위임 정보 등록 결과 (true : 성공, false : 실패) |
Example: Swift
VCManager.sharedInstance.delegationVC(
DHolderDID: dholderDID,
vcId: vcId,
submitPurpose: submitPurpose,
crtfcTy: crtfcTy,
verifyTy: verifyTy,
authType: authType ,
secretHash: secretHash,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] delegationVCWithDHolderDID: dholderDID
vcId: vcId
submitPurpose: submitPurpose
crtfcTy: crtfcTy
verifyTy: verifyTy
authType: authType
secretHash: secretHash
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Result:
Key | Type | Description |
---|---|---|
vpIdx | String | 제출 증명서 고유번호 |
delegationDID | String | 대행자 DID |
credentialInfo | String | 증명서 정보 |
holderDID | String | 사용자 DID |
idx | String | 위임 정보 고유번호 |
Example: Swift
VCManager.sharedInstance.getDelegationVCList(
DHolderDID: dholderDID,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getDelegationVCListWithDHolderDid:dholderDID
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Result:
Key | Type | Description |
---|---|---|
id | String | 검증에 사용되는 cid |
@context | Array | |
type | String | |
controller | String | |
publicKeyBase58 | String | |
vpIdx | String | |
vcId | String | |
holderDID | String | |
verifierMemberDID | String | |
verifyUUID | String | |
verifyOS | String |
Example: Swift
VCManager.sharedInstance.getAssertionMethod(
did: delegationDID,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getAssertionMethodWithDid:delegationDID
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
Parameters:
Result:
Key | Type | Description |
---|---|---|
holderName | String | 사용자 이름 |
verifierMemberName | String | 검증자 이름 |
issuerName | String | 발급기관 이름 |
credentialId | String | 증명서 고유번호 |
credentialName | String | 증명서 이름 |
verifierName | String | 검증기관 이름 |
isSuccess | Bool | 검증 결과 (true : 성공, false : 실패) |
Example: Swift
VCManager.sharedInstance.verifyDelegationVC(
cid: cid,
vpIdx: vpIdx,
DHolderDID: delegationDID,
vmDID: verifierMemberDID,
vUUID: verifyUUID,
vOS: verifyOS ,
successBlock: { code, msg in
//성공
print("success : \(code) : \(msg)")
},
failBlock: { code, msg in
//실패
print("fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] verifyDelegationVCWithCid: cid
vpIdx: vpIdx
DHolderDID: delegationDID
vmDID: verifierMemberDID
vUUID: verifyUUID
vOS: verifyOS
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"success : %@ : %@", code, msg);}
failBlock:^(NSString *code, NSString *msg) {
//실패
NSLog(@"fail : %@ : %@", code, msg);}
];
New in version 2.0.1
Parameters:
Result:
Key | Type | Description |
---|---|---|
resultCode | String | 응답코드 |
resultMessage | String | 응답 결과 메시지 |
txId | String | 트랜잭션 아이디 |
certificationNumber | String | 인증번호 (6자리) |
Example: Swift
VCManager.sharedInstance.createTxId(
certificationType: "certificationNumber" ,
originalText: "20220906110311" ,
certificationType: "RequestLogin" ,
successBlock: { code, msg in
print("createTxId success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Dictionary<String, String> {
print("result : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("createTxId fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] createTxIdWithCertificationType: @"certificationNumber"
originalText: @"20220906110311"
originalMessage: @"RequestLogin"
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"createTxId success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("result : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"createTxId fail : %@ : %@", code, msg);
}];
New in version 2.0.1
Parameters:
Result:
Key | Type | Description |
---|---|---|
resultCode | String | 응답코드 |
resultMessage | String | 응답 결과 메시지 |
signDoc | String | 서명데이터 |
vcId | String | 증명서 아이디 |
vpInfo | String | VP 정보 |
jweKeyIdx | String | JWE 복호화 키 index |
holderDID | String | 사용자 DID |
verifyTy | String | 검증 방식 |
crtfcTy | String | 인증 수단 코드 |
verifyOS | String | 검증 단말 OS 코드 |
Example: Swift
VCManager.sharedInstance.getAuthMulti(
txId: txId ,
successBlock: { code, msg in
print("getAuthMulti success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Dictionary<String, String> {
print("result : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("getAuthMulti fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] getAuthMultiWithTxId:txId
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"getAuthMulti success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("result : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"getAuthMulti fail : %@ : %@", code, msg);
}];
New in version 2.0.1
Parameters:
Result:
Key | Type | Description |
---|---|---|
resultCode | String | 응답코드 |
resultMessage | String | 응답 결과 메시지 |
isSuccess | Boolean | 검증 성공 여부 |
credentialId | String | 증명서 아이디 |
holderDID | String | 사용자 DID |
holderName | String | 사용자 이름 |
claim 데이터 키 | String | 증명서 설정 claim 데이터 |
Example: Swift
VCManager.sharedInstance.requestVerifyVC(
signDoc: signDoc ,
vcId: vcId ,
vpInfo: vpInfo ,
jweKeyIdx: jweKeyIdx ,
verifyTy: verifyTy ,
crtfcTy: crtfcTy ,
holderDID: holderDID ,
verifyOS: verifyOS ,
successBlock: { code, msg in
print("requestVerifyVC success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Dictionary<String, Any> {
print("result : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("requestVerifyVC fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] requestVerifyVCWithSignDoc: signDoc
vcId: vcId
vpInfo: vpInfo
jweKeyIdx: jweKeyIdx
verifyTy: verifyTy
crtfcTy: crtfcTy
holderDID: holderDID
verifyOS: verifyOS
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"requestVerifyVC success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("result : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"requestVerifyVC fail : %@ : %@", code, msg);
}];
New in version 2.0.1
Parameters:
Result:
Key | Type | Description |
---|---|---|
resultCode | String | 응답코드 |
resultMessage | String | 응답 결과 메시지 |
isSuccess | Boolean | 검증 성공 여부 |
credentialId | String | 증명서 아이디 |
holderDID | String | 사용자 DID |
holderName | String | 사용자 이름 |
claim 데이터 키 | String | 증명서 설정 claim 데이터 |
Example: Swift
VCManager.sharedInstance.authProcess(
originalMessage: originalMessage,
vcId: vcId,
authType: authType ,
secretHash: secretHash,
successBlock: { code, msg in
print("authProcess success : \(code) : \(msg)")
if let data:Data = msg.data(using: .utf8) as Data?
{
if let ret = try? JSONSerialization.jsonObject( with: data, options: .allowFragments) as? Dictionary<String, Any> {
print("result : \(ret)")
}
else{
print("Json failed : \(msg)")
}
}
else{
print("msg Error : \(msg)")
}
},
failBlock: { code, msg in
//실패
print("authProcess fail : \(code) : \(msg)")
}
)
Example: Objective-c
[[VCManager sharedInstance] authProcessWithOriginalMessage: originalMessage
vcId: vcId
authType: authType
secretHash: secretHash
successBlock:^(NSString *code, NSString *msg) {
//성공
NSLog(@"authProcess success : %@ : %@", code, msg);
NSDate *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *ret = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog("result : %@", ret);
} failBlock:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
//실패
NSLog(@"authProcess fail : %@ : %@", code, msg);
}];