WizSign은 모바일 환경에서 전자서명, 인증서 관리등의 PKI 응용프로그램 개발에 필요한 라이브러리를 제공하며, 공개키기반 응용 프로그램에서 사용하는 PKI 기반 기능들을 구현할 수 있다.
아래에서는 HybridApp 환경에서 전자서명, 인증서 관련 기능들을 사용하기 위한 API 명세서와 WizSign 서비스에 대한 설명을 제공한다.
| 구분 | 내용 | 
|---|---|
| 테스트 디바이스 | Galaxy S2 | 
| 테스트 플랫폼 | Android 2.3.6 | 
NPKI WizSign Library
| 파일명 | 설명 | 
|---|---|
| libs/jldap-4.3.jar | WizSign 라이브러리 | 
| libs/KSignCrypto_Applet.jar | WizSign 라이브러리 | 
| libs/WizSign.jar | 전자서명, 보안채널, 인증서 관련 기능들을 수행하는 핵심 라이브러리 | 
| assets/www/js/egovframework/mbl/hyb/wizsignpg.js | WizSign PhoneGap Plugin JavaScript | 
res/xml/plgins.xml 설정
<plugin name="WizSignPG" value="com.ksign.wizsign.sdk.WizSignPG"/>
전자서명을 하기 위한 API 이다.
- 파라메터 : 인증서 번호, 인증서 비밀번호, 서명대상 원문 
- 반환값(해시 테이블) 
'signedData' : 서명데이터 
'errMsg' : 에러 발생시 에러메시지 
var args = new Array();
args[0] = selectCertNum.toString() ;
args[1] = '1';
args[2] = stringToSign;
WizSignPG.doSignature(args, function(result) {
        var signedData = result['signedData'];	// 서명데이터
    }, function(error) {
        alert(error['errMsg']);	// 에러메시지
});
  
- 파라메터 : N/A 
- 반환값(해시 테이블) 
'Certificates' : 인증서 목록 
'errMsg' : 에러 발생시 에러메시지 
WizSignPG.getCertificates("", function(result) {
    var certList = result['Certificates'];
    for(var i=0 ; i<certList.length ; i++) {
        certList[i]['NUM'];
        certList[i]['주체자'];
        certList[i]['발급자'];
        certList[i]['만료일'];
    }
    }, function(error) {
        alert("error['errMsg']);
});
인증서 정보 해시테이블
| 해시테이블 | 설명 | 
|---|---|
| NUM | 인증서 번호 | 
| 버전 | 인증서 버전 | 
| 일련번호 | 인증서 시리얼번호 | 
| 서명알고리즘 | 인증서 서명알고리즘 | 
| 발급자 | 인증서의 발급자 정보 | 
| 효력발생일 | 인증서의 효력 발생일 | 
| 만료일 | 인증서 만료일 | 
| 주체자 | 인증서 주체자 정보 | 
| 공개키알고리즘 | 인증서 공개키 알고리즘 | 
| 발급자시리얼번호 | 발급자시리얼번호 | 
| 공개키 | 공개키값 | 
| 기관키식별자 | 기관키식별자 | 
| 주체자식별자 | 주체자식별자 | 
| 정책 | 정책 | 
| 주체대체이름 | 주체대체이름 | 
| CRL분배지점 | CRL분배지점 | 
| 기관정보액세스 | 기관정보액세스(OCSP) | 
| 키사용 | 키사용용도 | 
| 서명 | 인증서 서명값 | 
- 파라메터 : 인증서 번호, 인증서 비밀번호 
- 반환값(해시 테이블) 
'result' : 인증서 비밀번호 검증결과(성공시 'OK') 
'errMsg' : 에러 발생시 에러메시지 
var args = new Array();
args[0] = certNum.toString();
args[1] = certPass;
WizSignPG.verifyCertPassword(args, function(result) {
    var runResult = result['result'];
    if(runResult == 'OK') {
        alert('인증서 비밀번호가 일치합니다.');	
    }
			
    }, function(error) {
    alert(error['errMsg']);
});
- 파라메터 : 인증서 번호, 인증서 비밀번호, 새로운 인증서 비밀번호 
- 반환값(해시 테이블) 
'result' : 인증서 비밀번호 변경 결과(성공시 'OK') 
'errMsg' : 에러 발생시 에러메시지 
var args = new Array();
args[0] = certNum.toString();
args[1] = beforePass;
args[2] = afterPass;
						
WizSignPG.changeCertPassword(args, function(result) {
    var runResult = result['result'];
    if(runResult == 'OK') {
        alert('인증서 비밀번호를 변경하였습니다.');	
    }
    }, function(error) {
    alert(error['errMsg']);
});
- 파라메터  인증서 번호 
- 반환값(해시 테이블) 
'result' : 인증서 삭제 결과(성공시 'OK') 
'Certificate' : 삭제된 인증서 정보 
'errMsg' : 에러 발생시 에러메시지 
var args = new Array();
args[0] = certNum.toString();
	
WizSignPG.removeCert(args, function(result) {
    var runResult = result['result'];
    if(runResult == 'OK') {
        alert('인증서가 삭제되었습니다.')
    }			
	
    }, function(error) {
        alert(error['errMsg']);			
});
- 파라메터  인증서 번호 
- 반환값(해시 테이블) 
'result' : 인증서 CRL 검증결과(성공시 'OK') 
'status' : 인증서 상태 
'errMsg' : 에러 발생시 에러메시지 
var args = new Array();
args[0] = certNum.toString();
		
WizSignPG.doValidateCert(args, function(result) {
    var runResult = result['result'];
    var certStatus = result['status'];
			
    if(runResult == 'OK') {
        alert(certStatus);	
    }
		
    }, function(error) {
	alert(error['errMsg']);
});