MagicXSign NPKI API

개요

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

특징

  • 공인인증서(NPKI)를 이용한 서명 및 인증서 검증 방법제공
  • 인증서 이동서버를 통해 PC의 인증서를 스마트폰으로 이동
  • 상기 모듈들은 Native로 구성이 되어 있지만 PhoneGap Plugin 을 통해 WebView를 통해 사용
  • iOS 의 경우 APP 의 Keychain 에 인증서 저장
  • Android 의 경우 SDCard/NPKI 에 인증서 저장

전제조건

구분내용
테스트 디바이스 Galaxy S2
테스트 플랫폼 Android 2.3.6

NPKI MagicXSign Library

파일명설명
libs/MagicMRS.jar MagicXSign 라이브러리
libs/MagicXSign.jar MagicXSign 라이브러리
libs/XSIGN_PhoneGapPlugin.jar MagicXSign PhoneGap Plugin Class 라이브러리
libs/armeabi/libDSToolkitV30Jni.so MagicXSign 라이브러리
libs/armeabi/libMagicMRSPhone.so MagicXSign 라이브러리
assets/www/js/egovframework/mbl/hyb/MagicXSign.js MagicXSign PhoneGap Plugin JavaScript

res/xml/plgins.xml 설정

<plugin name="MagicXSignPlugin" value="com.dreamsecurity.magicxsign.PhoneGapPlugin" />

API Doc

MagicXSign(PKI) 함수

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

인증서검증방법제품명
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)
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);
Option설명비고
success return성공시 리턴되는 함수
fail return실패시 리턴되는 함수
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);
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);
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);
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의 인증서를 스마트폰으로 옮기는 서비스

인증서 이동 흐름도

window.plugins.magicxsign.mrs_makecode
  • 인증서버에 접속 하여 인증번호를 얻어온다.
window.plugins.magicxsign.mrs_makecode(success return, fail return, jsonString);
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);
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();
 
egovframework/hyb/guide/add/npki_드림시큐리티/magicxsign_doc.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki