이 사이트는 전자정부 표준프레임워크 구버전(1.0 ~ 4.3) 가이드 아카이브입니다. 내용은 더 이상 갱신되지 않습니다. 최신 내용은 최신 버전 문서에서 확인하세요.

모바일 디바이스 API 2.5

MagicXSign NPKI API

개요

MagicXSign은 PhoneGap Plugin을 사용하여 Android, iPhone 에서 드림시큐리티 MagicXsign 과 MagicMRS를 사용하기 위한 라이브러리 입니다.

특징

magicxsign전체흐름도.png

  • 공인인증서(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>

API Doc

MagicXSign(PKI) 함수

인증서 서명 / 서명 검증 프로세스

magicxsign인증서서명검증시퀀스.png

인증서 서명 / 서명 검증 프로세스
인증서검증방법제품명
CRL(Certificate Revocation List)일종의 블랙리스트 방식
CA가 인증서 폐기 목록을 특정 시간에 생성하게 되므로 실제 인증서의 상태와 폐기 목록상의 상태가 틀린 경우가 발생
무료 서비스
OCSP(Online Cerificate Status Protocol)실시간으로 상태를 확인 가능
유료 서비스
특정 CA와 사용 계약을 맺어서 사용
특정 CA에서 OCSP 용 인증서를 발급, 1년마다 갱신

window.plugins.magicxsign.init

  • MagicXSign 을 사용하기 위해 초기화를 한다.
window.plugins.magicxsign.init(var Flag)
window.plugins.magicxsign.init
Option설명비고
FlagMagicXSign Debug 출력 여부true:디버그 출력, false:디버그 출력 안함
window.plugins.magicxsign.init("false");
window.plugins.magicxsign.init("true");

window.plugins.magicxsign.getcertlist

  • 단말의 인증서를 jsonString 형식으로 맞추어서 읽어온다.
window.plugins.magicxsign.getcertlist( success return , fail return, jsonString);
window.plugins.magicxsign.getcertlist
Option설명비고
success return성공시 리턴되는 함수
fail return실패시 리턴되는 함수
jsonString인증서의 정보 요청

jsonString

  • 조회 할 인증서의 정보
jsonString
속성내용속성내용
issuer인증서 발급 기관name사용자이름
ver버전sn일련번호
issuedn발급자start만료일(시작)
end만료일(끝)subjdn주체자
pubkeyalgo공개키 알고리즘pubkey공개키
aia기관 정보 접근aki발급자 키식별자
ski주체자 키식별자keyuse키사용
policy정책policyid정책 ID
subaltname주체 대채이름crlCRL 위치
var setDefine = ["oidname","issuer","name","subjdn","start","end"];
window.plugins.magicxsign.getcertlist(getcertlistSuccess, getcertlistFail, JSON.stringify(setDefine));

window.plugins.magicxsign.certdel

  • 인증서를 삭제 한다.
window.plugins.magicxsign.certdel(success return, fail return, Cert Index);
window.plugins.magicxsign.certdel
Option설명비고
success return성공시 리턴되는 함수
fail return실패시 리턴되는 함수
Cert Index인증서 Index(0 부터 시작)window.plugins.magicxsign.getcertlist 호출에 대한 결과 index 값
window.plugins.magicxsign.certdel(certdelSuccess, certdelFail, 0);

window.plugins.magicxsign.certchagepassword

  • 인증서의 비밀번호를 변경한다.
window.plugins.magicxsing.certchagepassword(success return, fail return, jsonString);
window.plugins.magicxsign.certchagepassword
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.magicxsign.makesign

  • 서명 데이터를 생성한다.
window.plugins.magicxsing.makesign(success return, fail return, jsonString);
window.plugins.magicxsign.makesign
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));

MagicMRS(인증서이동) API

PC의 인증서를 스마트폰으로 옮기는 서비스

인증서 이동 흐름도

magicxsign인증서이동흐름도.png

window.plugins.magicxsign.mrs_makecode

  • 인증서버에 접속 하여 인증번호를 얻어온다.
window.plugins.magicxsign.mrs_makecode(success return, fail return, jsonString);
window.plugins.magicxsign.mrs_makecode
Option설명비고
success return성공시 리턴되는 함수
fail return실패시 리턴되는 함수
jsonStringphoneno, 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_waitcert

  • 인증서를 전송 받아 저장하고 인증서 정보를 리턴한다.
window.plugins.magicxsign.mrs_makecode(success return, fail return, jsonString);
window.plugins.magicxsign.mrs_waitcert
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.mrs_stopcertmove();

window.plugins.magicxsign.ollecert_check

  • 올레인증서가 인스톨 되어있는지 확인한다.
window.plugins.magicxsign.ollecert_check(ollecert_Check_Success, ollecert_Check_Fail);

window.plugins.magicxsign.ollecert_install

  • 올레인증서 인스톨을 위해 AppStore의 올레인증서 인스톨 화면을 호출한다.
window.plugins.magicxsign.ollecert_install();

window.plugins.magicxsign.ollecert_getcert

  • 올레인증서에서 인증서를 요청하여 선택된 인증서를 저장한다.
var setDefine = ["oidname","issuer","name","subjdn","start","end"];
window.plugins.magicxsign.ollecert_getcert(certGetFromOlleCert_Success, certGetFrom OlleCert_Fail, JSON.stringify(setDefine));
원본 페이지 ID
egovframework:hyb:guide:ios:npki_드림시큐리티:magicxsign_doc
원본 수정일