MagicXSign은 PhoneGap Plugin을 사용하여 Android, iPhone 에서 드림시큐리티 MagicXsign 과 MagicMRS를 사용하기 위한 라이브러리 입니다.
공인인증서(NPKI)를 이용한 서명 및 인증서 검증 방법제공
인증서 이동서버를 통해 PC의 인증서를 스마트폰으로 이동
상기 모듈들은 Native로 구성이 되어 있지만 PhoneGap Plugin 을 통해 WebView를 통해 사용
iOS 의 경우 APP 의 Keychain 에 인증서 저장
Android 의 경우 SDCard/NPKI 에 인증서 저장
구분 | 내용 |
테스트 디바이스 | iPhone 4 |
테스트 플랫폼 | iOS 5.1 |
NPKI MagicXSign Library
파일명 | 설명 |
Plugins/libMagicXSignPhoneGap.a | MagicXSign 라이브러리 |
Plugins/libMRSPC_LIB.a | MagicXSign 라이브러리 |
Plugins/libWDSTKI30_LIB.a | MagicXSign 라이브러리 |
Plugins/libKT_SCM_Client.a | MagicXSign 라이브러리 |
www/js/egovframework/mbl/hyb/MagicXSign.js | MagicXSign PhoneGap Plugin JavaScript |
Cordova.plist 설정
<key>Plugins</key>
<dict>
<key>MagicXSignPlugin</key>
<string>MagicXSignPlugin</string>
</dict>
인증서검증방법 | 제품명 |
CRL(Certificate Revocation List) | 일종의 블랙리스트 방식
CA가 인증서 폐기 목록을 특정 시간에 생성하게 되므로 실제 인증서의 상태와 폐기 목록상의 상태가 틀린 경우가 발생
무료 서비스 |
OCSP(Online Cerificate Status Protocol) | 실시간으로 상태를 확인 가능
유료 서비스
특정 CA와 사용 계약을 맺어서 사용
특정 CA에서 OCSP 용 인증서를 발급, 1년마다 갱신 |
window.plugins.magicxsign.init(var Flag)
Option | 설명 | 비고 |
Flag | MagicXSign Debug 출력 여부 | true:디버그 출력, false:디버그 출력 안함 |
window.plugins.magicxsign.init("false");
window.plugins.magicxsign.init("true");
window.plugins.magicxsign.getcertlist( success return , fail return, jsonString);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
jsonString | 인증서의 정보 요청 | |
속성 | 내용 | 속성 | 내용 |
issuer | 인증서 발급 기관 | name | 사용자이름 |
ver | 버전 | sn | 일련번호 |
issuedn | 발급자 | start | 만료일(시작) |
end | 만료일(끝) | subjdn | 주체자 |
pubkeyalgo | 공개키 알고리즘 | pubkey | 공개키 |
aia | 기관 정보 접근 | aki | 발급자 키식별자 |
ski | 주체자 키식별자 | keyuse | 키사용 |
policy | 정책 | policyid | 정책 ID |
subaltname | 주체 대채이름 | crl | CRL 위치 |
var setDefine = ["oidname","issuer","name","subjdn","start","end"];
window.plugins.magicxsign.getcertlist(getcertlistSuccess, getcertlistFail, JSON.stringify(setDefine));
window.plugins.magicxsign.certdel(success return, fail return, Cert Index);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
Cert Index | 인증서 Index(0 부터 시작) | window.plugins.magicxsign.getcertlist 호출에 대한 결과 index 값 |
window.plugins.magicxsign.certdel(certdelSuccess, certdelFail, 0);
window.plugins.magicxsing.certchagepassword(success return, fail return, jsonString);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
jsonString | 인증서 Index, 구/신 비밀번호를 jsonString 전달 | |
var setDefine = {};
setDefine["certindex"] = iCertIndex; //선택된 인증서 index
setDefine["oldpassword"] = oldpassword; //선택된 인증서 Password
setDefine["newpassword"] = newpassword; //신규 인증서 Password
window.plugins.magicxsing.certchagepassword(certchagepasswordSuccess, certchagepasswordFail, JSON.stringify(setDefine));
window.plugins.magicxsing.makesign(success return, fail return, jsonString);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
jsonString | 인증서 Index, 구/신 비밀번호를 jsonString 전달 | |
var setDefine = {};
setDefine["plaintext"] = encodeURIComplnent(MagicXSign_makeQueryString(form)));
setDefine["uri"] = sURI;
setDefine["certindex"] = document.getElementById("xsigncertindex").value;
setDefine["certpassword"] = document.getElementById("xsigncertpassword").value;
window.plugins.magicxsign.makesign(makesign_ok, makesign_fail, JSON.stringify(setDefine));
window.plugins.magicxsign.mrs_makecode(success return, fail return, jsonString);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
jsonString | phoneno, serverip, serverport, serviceid 형태의 Json String | |
var setDefine = {};
setDefine["phoneno"] = "123456789";
setDefine["serverip"] = "125.141.204.173";
setDefine["serverport"] = "10001";
setDefine["serviceid"] = "dreamAPP";
window.plugins.magicxsign.makesign(makesign_ok, makesign_fail, JSON.stringify(setDefine));
window.plugins.magicxsign.mrs_makecode(success return, fail return, jsonString);
Option | 설명 | 비고 |
success return | 성공시 리턴되는 함수 | |
fail return | 실패시 리턴되는 함수 | |
jsonString | 얻어온 인증서의 정보 보기용 | certlist 함수 참조 |
var setDefine = ["oidname","issuer","name","subjdn","start","end"]
window.plugins.magicxsign.mrs_waitcert(getcertlistSuccess, getcertlistFail, JSON.stringify(setDefine));
window.plugins.magicxsign.mrs_stopcertmove();
window.plugins.magicxsign.ollecert_check(ollecert_Check_Success, ollecert_Check_Fail);
window.plugins.magicxsign.ollecert_install();
var setDefine = ["oidname","issuer","name","subjdn","start","end"];
window.plugins.magicxsign.ollecert_getcert(certGetFromOlleCert_Success, certGetFrom OlleCert_Fail, JSON.stringify(setDefine));