Verifiable Credential (자격증명서) 서비스를 적용하기 위한 사용자앱 Client 라이브러리 API를 정의
객체 생성 후 HDMS(Hecate DID Management Server) 도메인을 설정
// DID 객체 생성
DIDManager dManager = DIDManager.getInstance(getApplicationContext()); // DID
dManager.setDIDServerDomain("DID 서버 주소");
// 증명서 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext()); // 증명서
CommonCallback.CCallback callback = new CommonCallback.CCallback() {
@Override
public void onFailed(final String code, final String resultMsg) {
// "API 호출 후 해당 케이스가 성공이 아닌 경우"
}
@Override
public void onSuccess(final String code, final String resultMsg) {
// "API 호출 후 해당 케이스가 성공인 경우"
}
};
증명서(VC) 발급 가능한 발급기관 목록을 요청
Parameters:
Key | Type | Description |
---|---|---|
did | String | 발급기관 DID |
name | String | 발급기관 이름 |
Example:
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.getIssuer( new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
// code : 0000, resultMsg : JSONArray [{"name":"", "did":""}]
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
발급기관에서 발급 가능한 증명서(VC) 타입을 조회 요청
Parameters:
Key | Type | Description |
---|---|---|
issueType | String | 발급기관 DID |
craimFormat | String | 발급기관 이름 |
name | String | 발급 가능 증명서 이름 |
type | String | 발급 가능 증명서 타입 |
Example:
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.getIssuerVCType("ISSUER DID", new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
// code : 0000
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
사용자앱 내 저장된 증명서(VC) 발급 유무를 확인
Returns: true: 있음, false: 없음
Return type: Boolean
Example:
if (!VCManager.getInstance().existVC()) {
// 발급받은 VC 무
}else{
// 발급받은 VC 유
}
증명서(VC) 발급 요청을 수행
Parameters:
Example:
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.registVC( issuerDID, vcTYPE, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 발급 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 발급 성공
// code : 0000 resultMsg : 증명서 발급에 성공하였습니다.
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
증명서(VC) 상태를 조회 요청
Parameters:
Code | Description |
---|---|
0000 | 정상 인증서 |
8003 | 만료or폐기 인증서 |
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
vManager.getVCStatus( vcID, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 상태 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
// code : 0000(정상), 8003(만료, 폐기)
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
발급받은 증명서(VC) 리스트를 조회 요청
Returns: 발급받은 증명서 리스트
Return type: VCredential JSONObject
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
// 발급받은 증명서를 조회한다.
JSONObject vcList = vManager.getALLVCList();
Log.d("TAG", "발급받은 증명서 리스트 : " + vcList.toString());
증명서(VC) 상세정보를 조회 요청
Parameters:
Returns: 발급받은 증명서 상세내역
Return type: VCredential
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
// 발급받은 증명서를 조회한다.
VCredential vc = vManager.getVCDetailInfo(vcID);
Log.d("TAG", "발급받은 증명서 : " + vc.toString());
Log.d("TAG", "증명서 발급기관: " + vc.getIssuer());
증명서(VC) 전시에 필요한 정보를 요청 QR데이터 요청 호출전 증명서(VC) 상태조회 체크
Parameters:
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
vManager.showVC( vcID, submitPurpose, crtfcTy, verifyTy, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 증명서 전시 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
// code : 0000(정상),
Log.d("TAG", "code : " + code + "\nQR Data : " + resultMsg);
}
});
증명서(VC) 를 폐기 요청
Parameters:
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
vManager.unRegistVC( vcID, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 폐기 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 폐기 성공
// code : 0000(정상)
Log.d("TAG", "code : " + code + "\n resultMsg : " + resultMsg);
}
});
증명서(VC) 발급 이력을 조회 요청
Parameters:
Key | Type | Description |
---|---|---|
issuerDID | String | 발급기관 DID |
autoConfirm | String | 자동 승인 여부 |
name | String | 증명서 이름 |
holderDID | String | 사용자 DID |
id | String | 증명서 아이디 |
type | String | 증명서 타입 |
status | String | 증명서 상태 |
registDate | String | 등록일 |
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
vManager.getVCRegistHistory( new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 발급 이력 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 발급 이력 조회 성공
// code : 0000(정상), resultMsg : 발급이력
Log.d("TAG", "code : " + code + "\n resultMsg : " + resultMsg);
}
});
증명서(VC) ID로 증명서 타입을 조회 요청
Parameters:
Returns: 증명서 타입
Return type: String
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
// 발급받은 증명서를 조회한다.
String vcType = vManager.getVCType(vcID);
Log.d("TAG", "증명서 타입: " + vcType.toString());
사용자앱에 저장된 증명서(VC)들의 타입을 조회
Returns: 증명서 타입
Return type: ArrayList
Example:
// 객체 생성
VCManager vManager = VCManager.getInstance(getApplicationContext());
// 발급받은 증명서를 조회한다.
ArrayList vcType = vManager.getSavedVCTypeList();
멀티 인증 요청을 수행
Parameters:
Example:
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.authMulti( "qr", "123456", vcId, vcTYPE, authType, secretHash, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 멀티인증 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 멀티인증 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
선택한 증명서(VC)를 백업한다.
Parameters:
vcId (String) – 증명서 아이디
callback (CommonCallback) – 결과 응답을 받기 위한 콜백함수
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.backupVC( vcId, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 백업 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 백업 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
백업한 증명서(VC) 리스트를 조회한다.
Parameters:
did (String) – 사용자 DID
callback (CommonCallback) – 결과 응답을 받기 위한 콜백함수
Result:
Key | Type | Description |
---|---|---|
holderDID | String | 사용자 DID |
vcid | String | 증명서 아이디 |
credentialInfo | VCredential | 증명서 상세내역 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.recoveryVC( did, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
증명서 위임 제출
Parameters:
Result:
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.delegationVC( DHolderDID, vcID, submitPurpose, crtfcTy, verifyTy, authType, secretHash, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 위임 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 위임 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
위임 제출된 증명서(VC) 리스트를 조회
Parameters:
Result:
Key | Type | Description |
---|---|---|
vpIdx | String | 제출 증명서 고유번호 |
delegationDID | String | 대행자 DID |
credentialInfo | String | 증명서 정보 |
holderDID | String | 사용자 DID |
idx | String | 위임 정보 고유번호 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.getDelegationVCList( DHolderDID, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
증명서 검증 challenge 조회
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 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.getAssertionMethod( did, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 조회 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 조회 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
증명서 대행 검증 요청
Parameters:
Result:
Key | Type | Description |
---|---|---|
holderName | String | 사용자 이름 |
verifierMemberName | String | 검증자 이름 |
issuerName | String | 발급기관 이름 |
credentialId | String | 증명서 고유번호 |
credentialName | String | 증명서 이름 |
verifierName | String | 검증기관 이름 |
isSuccess | Bool | 검증 결과 (true : 성공, false : 실패) |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.verifyDelegationVC( cid, vpIdx, DHolderDID, vmDID, vUUID, vOS, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 위임 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 위임 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
New in version 1.0.4
Parameters:
Result:
Key | Type | Description |
---|---|---|
txId | String | 사용자 이름 |
certificationNumber | String | 검증자 이름 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.createTxId( certificationType, originalText, originalMessage, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
New in version 1.0.4
Parameters:
Result:
Key | Type | Description |
---|---|---|
signDoc | String | 서명데이터 |
vcId | String | 증명서 아이디 |
vpInfo | String | VP 정보 |
jweKeyIdx | String | JWE 복호화 키 index |
holderDID | String | 사용자 DID |
verifyTy | String | 검증 방식 |
crtfcTy | String | 인증 수단 코드 |
verifyOS | String | 검증 단말 OS 코드 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.getAuthMulti( txId, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
New in version 1.0.4
Parameters:
Result:
Key | Type | Description |
---|---|---|
isSuccess | String | 검증 성공 여부 |
credentialId | String | 증명서 아이디 |
holderDID | String | 사용자 DID |
holderName | String | 사용자 이름 |
claim 데이터 키 | String | 증명서 설정 claim 데이터 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.requestVerifyVC( signDoc, vcId, vpInfo, jweKeyIdx, verifyTy, crtfcTy, holderDID, verifyOS, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});
New in version 1.0.4
Parameters:
Result:
Key | Type | Description |
---|---|---|
isSuccess | String | 검증 성공 여부 |
credentialId | String | 증명서 아이디 |
holderDID | String | 사용자 DID |
holderName | String | 사용자 이름 |
claim 데이터 키 | String | 증명서 설정 claim 데이터 |
// 객체 생성
VCManager vcManager = VCManager.getInstance(getApplicationContext());
vcManager.authProcess( originalMessage, vcId, authType, secretHash, new CommonCallback.CCallback() {
@Override
public void onFailed(String code, String resultMsg) {
// 실패
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
@Override
public void onSuccess(String code, String resultMsg) {
// 성공
Log.d("TAG", "code : " + code + "\nresultMsg : " + resultMsg);
}
});