====== XecureSmart NPKI API ======
===== 개요 =====
[XecureSmart] eGovFrame javascript Interface 는 폰갭 인터페이스를 이용하여 모바일에서 NPKI 서비스를 제공한다.
==== API 리스트 ====
* 패키지 함수
^함수명^설명^
|void XecureSmartPlugin.blockDecEx ( successCB, failCB, cipherText ) | 암호문 텍스트를 복호화한다. |
|void XecureSmartPlugin.blockDec ( successCB, failCB, path, plainText, method ) | 평문 텍스트를 암호화한다. |
|void XecureSmartPlugin.changeCertPassword ( successCB, failCB, issuerDN, serial, oldPassword, newPassword ) | 인증서의 암호를 변경한다. |
|void XecureSmartPlugin.deEnvelopeDataWithCert ( successCB, failCB, envelopeText, issuerDN, serial, password ) | 인증서로 전자봉투한 전자봉투 텍스트를 복호화한다. |
|void XecureSmartPlugin.deEnvelopeDataWithPassword ( successCB, failCB, envelopeText, password ) | 패스워드로 전자봉투한 전자봉투 텍스트를 복호화한다. |
|void XecureSmartPlugin.deleteCertificate ( successCB, failCB, issuerDN, serial ) | 인증서를 삭제한다. |
|void XecureSmartPlugin.envelopeDataWithCert ( successCB, failCB, plainText, issuerDN, serial ) | 평문 텍스트를 인증서로 전자봉투한다. |
|void XecureSmartPlugin.envelopeDataWithPassword ( successCB, failCB, plainText, password ) | 평문 텍스트를 암호로 전자봉투한다. |
|void XecureSmartPlugin.envelopeDataWithPEM ( successCB, failCB, plainText, pem ) | 평문 텍스트를 PEM 인증서로 전자봉투한다. |
|void XecureSmartPlugin.getCertTree ( successCB , failCB , certType , searchType , contentLevel , searchValue , searchSerial ) | 장치의 인증서 목록을 가져온다. |
|void XecureSmartPlugin.getEnvelopeCertInfo ( successCB , failCB , envelopeText ) | 전자봉투 텍스트의 인증서 정보를 가져온다. |
|void XecureSmartPlugin.getEnvelopeType ( successCB , failCB , envelopeText ) | 전자봉투 텍스트의 타입을 가져온다. |
|void XecureSmartPlugin.getVIDInfo ( successCB , failCB ) | 식별번호 검증 시 전자서명 후에 VID를 가져온다. |
|void XecureSmartPlugin.keySharpGetConfirmNumber ( successCB , failCB, ssn ) | 키샵에서 인증번호를 가져온다. |
|void XecureSmartPlugin.keySharpSaveCert ( successCB , failCB ) | 키샾에서 받아온 인증서를 저장한다. |
|void XecureSmartPlugin.renewCertificate ( successCB, failCB, caCode, issuerDN, serial, oldPassword, newPassword ) | CA로부터 인증서를 갱신받는다. |
|void XecureSmartPlugin.requestCertificate ( successCB, failCB, caCode, refNum, authCode, password ) | CA로부터 인증서를 발급받는다. |
|void XecureSmartPlugin.revokeCertificate ( successCB, failCB, caCode, issuerDN, serial, password, jobCode, reason ) | CA로부터 인증서를 폐기한다. |
|void XecureSmartPlugin.setIDNum ( successCB, failCB, idn ) | 식별번호 검증 시 전자서명 전에 식별번호를 입력한다. |
|void XecureSmartPlugin.signDataAdd ( successCB , failCB , issuerDN , serial , password , plainText ) | 전자서명문에 전자서명을 추가한다. |
|void XecureSmartPlugin.signDataCMS ( successCB , failCB , issuerDN , serial , password , plainText ) | 평문 텍스트를 전자서명한다. |
|void XecureSmartPlugin.verifyCertPassword ( successCB , failCB , issuerDN , serial , password ) | 인증서의 암호를 검증한다. |
* 패키지 속성
^변수명^설명^
|var xgateAddress|xgate 서버 주소|
|var keySharpIP|키샵에서 사용할 IP|
|var keySharpPort|키샵에서 사용하는 port|
==== 전제조건 ====
^구분^내용^
|테스트 디바이스 |Galaxy S2|
|테스트 플랫폼 |Android 2.3.6|
NPKI XecureSmart Library
^파일명^설명^
|libs/KeySharp_Android_1.3.8.jar| XecureSmart 라이브러리 |
|libs/XecureSmart.jar| XecureSmart PhoneGap Plugin Class 라이브러리 |
|libs/armeabi/libKeySharp_Android_Core.so| XecureSmart 라이브러리 |
|libs/armeabi/libXecureCrypto.so| XecureSmart 라이브러리 |
|libs/armeabi/libXecurePKCS11.so| XecureSmart 라이브러리 |
|libs/armeabi/libXWClientSM_jni.so| XecureSmart 라이브러리 |
|assets/www/js/egovframework/mbl/hyb/XSCore.js| XecureSmart PhoneGap Plugin JavaScript |
|src/com.softforum.xecure.XApplication.java| XecureSmart 메인 Activity Class |
|src/com.softforum.xecure.util.EnvironmentConfig.java| XecureSmart 설정 Class |
res/xml/plgins.xml 설정
MainActivity 설정
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//XecureSmart 사용을 위한 라이브러리 로드
CoreWrapper.load();
super.clearCache();
super.loadUrI("file:///android_asset/www/intro.html");
}
===== API Doc =====
== XecureSmartPlugin.blockDecEx ==
* 암호문 텍스트를 복호화한다.
void XecureSmartPlugin.blockDecEx ( successCB, failCB, cipherText )
^Option^설명^비고^
|successCB|성공시 콜백함수|(out)평문 텍스트|
|failCB|실패시 콜백함수|(out)에러코드$에러메시지|
|cipherText|암호문|(in)|
== XecureSmartPlugin.blockDec ==
* 평문 텍스트를 암호화한다.
void XecureSmartPlugin.blockDec ( successCB, failCB, path, plainText, method )
^Option^설명^비고^
|successCB|성공시 콜백함수|(out)암호문 텍스트|
|failCB|실패시 콜백함수|(out)에러코드$에러메시지|
|path|점속할 페이지 URI|(in)|
|plainText|평문|(in)|
|method|접속방식|(in)GET : 보안세션 갱신 \\ POST : 보안세션 갱신안함 \\ RESET : 보안세션 갱신(direct port로 재연결)|
== XecureSmartPlugin.changeCertPassword ==
* 인증서의 암호를 변경한다.
void XecureSmartPlugin.changeCertPassword ( successCB, failCB, issuerDN, serial, oldPassword, newPassword )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| oldPassword | 인증서의 이전암호 | (in) |
| newPassword | 인증서의 새 암호 | (in) |
== XecureSmartPlugin.deEnvelopeDataWithCert ==
* 인증서로 전자봉투한 전자봉투 텍스트를 복호화한다.
void XecureSmartPlugin.deEnvelopeDataWithCert ( successCB, failCB, envelopeText, issuerDN, serial, password )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)평문|
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| envelopeText | 전자봉투 텍스트 | (in) |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| password | 인증서의 암호 | (in) |
== XecureSmartPlugin.deEnvelopeDataWithPassword ==
* 패스워드로 전자봉투한 전자봉투 텍스트를 복호화한다.
void XecureSmartPlugin.deEnvelopeDataWithPassword ( successCB, failCB, envelopeText, password )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)평문 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| envelopeText | 전자봉투 텍스트 | (in) |
| password | 암호 | (in) |
== XecureSmartPlugin.deleteCertificate ==
* 인증서를 삭제한다.
void XecureSmartPlugin.deleteCertificate ( successCB, failCB, issuerDN, serial )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
== XecureSmartPlugin.envelopeDataWithCert ==
* 평문 텍스트를 인증서로 전자봉투한다.
void XecureSmartPlugin.envelopeDataWithCert ( successCB, failCB, plainText, issuerDN, serial )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)전자봉투 텍스트 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| plainText | 평문 | (in) |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
== XecureSmartPlugin.envelopeDataWithPassword ==
* 평문 텍스트를 암호로 전자봉투한다.
void XecureSmartPlugin.envelopeDataWithPassword ( successCB, failCB, plainText, password )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)전자봉투 텍스트 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| plainText | 평문 | (in) |
| password | 암호 | (in) |
== XecureSmartPlugin.envelopeDataWithPEM ==
* 평문 텍스트를 PEM 인증서로 전자봉투한다.
void XecureSmartPlugin.envelopeDataWithPEM ( successCB, failCB, plainText, pem )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)전자봉투 텍스트 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| plainText | 평문 | (in) |
| pem | PEM타입 인증서 | (in) |
== XecureSmartPlugin.getCertTree ==
* 장치의 인증서 목록을 가져온다. searchType과 searchValue를 함께 사용하여 검색이 가능하며, searchSerial를 이용해 일련 번호로 검색도 가능하다. \\
void XecureSmartPlugin.getCertTree ( successCB , failCB , certType , searchType , contentLevel , searchValue , searchSerial )
^Option^설명^비고^
|successCB|성공 시 콜백함수|(out)contentLevel : 0(자세한 정보), contentLevel : 5(간략한 정보)|
|failCB|실패 시 콜백함수|(out)에러코드$에러메세지|
|certType|타입|(in)0:루트인증서,1:CA인증서,2:사용자인증서,3:전체인증서|
|searchType|검색조건|(in)0:검색하지않음 \\ 10:subjectDN의 CN과 일치 \\ 11:subjectDN의 OU와 일치 \\ 12:subjectDN의 O와 일치 \\ 13:subjectDN의 C와 일치 \\ 14:subjectDN과 일치 \\ 20:issuerDN의 CN과 일치 \\ 21:issuerDN의 OU과 일치 \\ 22:issuerDN의 O와 일치 \\ 23:issuerDN의 C와 일치 \\ 24:issuerDN과 일치|
|contentLevel|결과값의 레벨|(in)0:자세한 정보,5:간략한 정보|
|searchValue|검색값|(in)|
|searchSerial|검색할 일련 번호|(in)|
== XecureSmartPlugin.getEnvelopeCertInfo ==
* 전자봉투 텍스트의 인증서 정보를 가져온다.
void XecureSmartPlugin.getEnvelopeCertInfo ( successCB , failCB , envelopeText )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)발급자$일련 번호 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| envelopeText | 전자봉투 텍스트 | (in) |
== XecureSmartPlugin.getEnvelopeType ==
* 전자봉투 텍스트의 타입을 가져온다.
void XecureSmartPlugin.getEnvelopeType ( successCB , failCB , envelopeText )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)타입 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| envelopeText | 전자봉투 텍스트 | (in) |
== XecureSmartPlugin.getVIDInfo ==
* 식별번호 검증 시 전자서명 후에 VID를 가져온다.
void XecureSmartPlugin.getVIDInfo ( successCB , failCB )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)VID |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
== XecureSmartPlugin.keySharpGetConfirmNumber ==
* 키샵에서 인증번호를 가져온다.
void XecureSmartPlugin.keySharpGetConfirmNumber ( successCB , failCB, ssn )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)0 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| ssn | 가져올 인증서의 주민등록번호/사업자등록번호 | (in) |
== XecureSmartPlugin.keySharpSaveCert ==
* 키샾에서 받아온 인증서를 저장한다.
void XecureSmartPlugin.keySharpSaveCert ( successCB , failCB )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)0 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
== XecureSmartPlugin.renewCertificate ==
* CA로부터 인증서를 갱신받는다.
void XecureSmartPlugin.renewCertificate ( successCB, failCB, caCode, issuerDN, serial, oldPassword, newPassword )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| caCode | CA 코드 | (in)10 : Yessign test \\ 11 : XecureCA RSA \\ 12 : XecureCA KCDSA \\ 13 : Yessign test 2048 \\ 14 : XecureCA 2048 RSA \\ 15 : XecureCA 2048 KCDSA \\ 16 : SignKorea \\ 17 : SignKorea test |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| oldPassword | 인증서의 이전암호 | (in) |
| newPassword | 인증서의 새 암호 | (in) |
== XecureSmartPlugin.requestCertificate ==
* CA로부터 인증서를 발급받는다.
void XecureSmartPlugin.requestCertificate ( successCB, failCB, caCode, refNum, authCode, password )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| caCode | CA 코드 | (in)10 : Yessign test \\ 11 : XecureCA RSA \\ 12 : XecureCA KCDSA \\ 13 : Yessign test 2048 \\ 14 : XecureCA 2048 RSA \\ 15 : XecureCA 2048 KCDSA \\ 16 : SignKorea \\ 17 : SignKorea test |
| refNum | 참조번호 | (in) |
| authCode | 인가코드 | (in) |
| password | 인증서의 암호 | (in) |
== XecureSmartPlugin.revokeCertificate ==
* CA로부터 인증서를 폐기한다.
void XecureSmartPlugin.revokeCertificate ( successCB, failCB, caCode, issuerDN, serial, password, jobCode, reason )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| caCode | CA 코드 | (in)10 : Yessign test \\ 11 : XecureCA RSA \\ 12 : XecureCA KCDSA \\ 13 : Yessign test 2048 \\ 14 : XecureCA 2048 RSA \\ 15 : XecureCA 2048 KCDSA \\ 16 : SignKorea \\ 17 : SignKorea test |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| password | 인증서의 암호 | (in) |
| jobCode | 작업코드 | (in) |
| reason | 사유 | (in) |
== XecureSmartPlugin.setIDNum ==
* 식별번호 검증 시 전자서명 전에 식별번호를 입력한다.
void XecureSmartPlugin.setIDNum ( successCB, failCB, idn )
^Option^설명^비고^
| successCB | 성공시 콜백함수 | (out)0 |
| failCB | 실패시 콜백함수 | (out)에러코드$에러메시지 |
| idn | 식별번호 | (in) |
== XecureSmartPlugin.signDataAdd ==
* 전자서명문에 전자서명을 추가한다.
void XecureSmartPlugin.signDataAdd ( successCB , failCB , issuerDN , serial , password , plainText )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)전자서명 텍스트 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| password | 인증서의 암호 | (in) |
| plainText | 평문 | (in) |
== XecureSmartPlugin.signDataCMS ==
* 평문 텍스트를 전자서명한다.
void XecureSmartPlugin.signDataCMS ( successCB , failCB , issuerDN , serial , password , plainText )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)전자서명 텍스트 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| password | 인증서의 암호 | (in) |
| plainText | 평문 | (in) |
== XecureSmartPlugin.verifyCertPassword ==
* 인증서의 암호를 검증한다.
void XecureSmartPlugin.verifyCertPassword ( successCB , failCB , issuerDN , serial , password )
^Option^설명^비고^
| successCB | 성공 시 콜백함수 | (out)0 |
| failCB | 실패 시 콜백함수 | (out)에러코드$에러메세지 |
| issuerDN | 인증서의 발급자 | (in) |
| serial | 인증서의 일련번호 | (in) |
| password | 인증서의 암호 | (in) |