WA-SDK  3.0.4.0
WA-SDK
ISSAC-API (CMP)

CMP (인증서 관리 프로토콜) 더 자세히 ...

ISSAC-API (CMP)에 대한 협력 다이어그램:

데이터 구조

struct  CERTANDKEY
 인증서와 개인키를 갖는 구조체 더 자세히 ...
 
struct  PKIMESSAGE
 PKIMessage에 대한 컨텍스트 더 자세히 ...
 
struct  PKICONTEXT
 PKIMessage 생성시에 각 함수들이 공유하여 사용하는 자료들을 모은 구조체 더 자세히 ...
 
struct  PKIKEYPOLICIES
 인증서 키생성을 위한 정책을 저장하는 구조체 더 자세히 ...
 
struct  PKICERTREQS
 인증서 생성요청들을 담고있는 구조체 더 자세히 ...
 
struct  PKICERTREPS
 인증서 생성 응답들을 갖고 있는 구조체 더 자세히 ...
 
struct  PKICERTREVREQS
 인증서 폐지요청들을 담고있는 구조체 더 자세히 ...
 
struct  PKICERTREVREPS
 인증서 폐지 응답들을 갖고 있는 구조체 더 자세히 ...
 

열거형 타입

enum  ISSACAPI_CP_RETURN {
  ER_CP_INVALID_USER_DN = 20000 , ER_CP_INVALID_USER_ID , ER_CP_TOO_SMALL_MSG_BUF , ER_CP_INVALID_AUTH_CERT ,
  ER_CP_CANNOT_DECODE_MSG , ER_CP_INVALID_MSG_SIG
}
 
enum  ISSACAPI_PKIMESSAGE_TYPE {
  ISSACAPI_PKIMESSAGE_IR = 0 , ISSACAPI_PKIMESSAGE_IP , ISSACAPI_PKIMESSAGE_CR , ISSACAPI_PKIMESSAGE_CP ,
  ISSACAPI_PKIMESSAGE_KUR , ISSACAPI_PKIMESSAGE_KUP , ISSACAPI_PKIMESSAGE_KRR , ISSACAPI_PKIMESSAGE_KRP ,
  ISSACAPI_PKIMESSAGE_RR , ISSACAPI_PKIMESSAGE_RP , ISSACAPI_PKIMESSAGE_CCR , ISSACAPI_PKIMESSAGE_CCP ,
  ISSACAPI_PKIMESSAGE_CKUANN , ISSACAPI_PKIMESSAGE_CANN , ISSACAPI_PKIMESSAGE_RANN , ISSACAPI_PKIMESSAGE_CRLANN ,
  ISSACAPI_PKIMESSAGE_CONF , ISSACAPI_PKIMESSAGE_GENM , ISSACAPI_PKIMESSAGE_GENP , ISSACAPI_PKIMESSAGE_ERROR
}
 
enum  ISSAC_CMP_PKISTATUS { ISSACAPI_CMP_PKISTATUS_ACCEPTED = 0 , ISSACAPI_CMP_PKISTATUS_GRANTEDWITHMODS = 1 , ISSACAPI_CMP_PKISTATUS_REJECTION = 2 }
 
enum  ISSAC_API_REVOCATION_REASON {
  ISSAC_API_REVOC_REASON_unused = 0x8000 , ISSAC_API_REVOC_REASON_keyCompromise = 0x4000 , ISSAC_API_REVOC_REASON_cACompromise = 0x2000 , ISSAC_API_REVOC_REASON_affiliationChanged = 0x1000 ,
  ISSAC_API_REVOC_REASON_superseded = 0x0800 , ISSAC_API_REVOC_REASON_cessationOfOperation = 0x0400 , ISSAC_API_REVOC_REASON_certificateHold = 0x0200
}
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskInitialCert (CERTANDKEY **cert_and_key_array, int *size, char *error_msg, int buf_len, char *raip, short raport, const char *user_id, const char *authcode, const char *resident_num, CERTIFICATE *ra_cert, CERTIFICATE *ca_cert)
 인증코드를 통하여 CA/RA에게 전송할 인증서 발급을 요청한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskInitialCert2 (CERTANDKEY **cert_and_key_array, int *size, char *error_msg, int buf_len, char *raip, short raport, char *user_id, char *user_dn, CERTIFICATE *admin_cert, PRIVATEKEY *admin_prikey, const char *resident_num, CERTIFICATE *ra_cert, CERTIFICATE *ca_cert)
 관리자의 인증서를 통하여 CA/RA에게 전송할 인증서 발급을 요청한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskKeyUpdate (CERTANDKEY **out_cert_and_key_array, int *out_size, char *error_msg, int buf_len, char *raip, short raport, CERTANDKEY *in_cert_and_key_array, int in_size, const char *resident_num, CERTIFICATE *ra_cert, CERTIFICATE *ca_cert)
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskKeyUpdate2 (CERTANDKEY **out_cert_and_key_array, int *out_size, char *error_msg, int buf_len, char *raip, short raport, CERTANDKEY *in_cert_and_key_array, int in_size, const char *resident_num, CERTIFICATE *admin_cert, PRIVATEKEY *admin_key, CERTIFICATE *ra_cert, CERTIFICATE *ca_cert)
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_DeleteCERTANDKEYarray (CERTANDKEY **cank_array, int size)
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Create (PKIMESSAGE *pkimsg)
 PKIMESSAGE 구조체를 초기화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Delete (PKIMESSAGE *pkimsg)
 PKIMESSAGE 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetMsgType (int *msg_type, char *err_str, int err_str_max, PKIMESSAGE *pkimsg)
 수신한 PKIMESSAGE의 TYPE을 알아냄. 또한 type이 ERROR일 경우 에러 메시지를 리턴 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetSenderId (char *sender_id, int sender_id_max, PKIMESSAGE *pkimsg)
 수신한 PKIMESSAGE에서 송신자의 id를 구해냄 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetSenderName (char *sender_name, int sender_name_max, PKIMESSAGE *pkimsg)
 수신한 PKIMESSAGE에서 송신자의 DN을 구해냄 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICONTEXT_Create (PKICONTEXT *pkictx)
 PKICONTEXT 구조체를 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICONTEXT_Delete (PKICONTEXT *pkictx)
 PKICONTEXT 구조체를 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Create (PKIKEYPOLICIES *key_policy)
 PKIKEYPOLICIES type을 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Delete (PKIKEYPOLICIES *key_policy)
 PKIKEYPOLICIES type을 메모리에서 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Read_File (PKIKEYPOLICIES *key_policy, const char *filename)
 PKIKEYPOLICIES type을 파일에서 읽어들임 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Write_File (const char *filename, PKIKEYPOLICIES *key_policy)
 PKIKEYPOLICIES type을 파일에 저장 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Read_Memory (PKIKEYPOLICIES *key_policy, const void *buffer, int buffer_len)
 PKIKEYPOLICIES type을 메모리에서 읽어들임 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Write_Memory (void *buffer, int *buffer_len, int buffer_alloc_len, PKIKEYPOLICIES *key_policy)
 PKIKEYPOLICIES type을 메모리에 저장 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Get (char *name, int name_max, char *id, int id_max, int *algorithm, int *key_bit_len, char *parameter, int parameter_len, PKIKEYPOLICIES *key_policies, int index)
 PKIKEYPOLICIES 의 내용을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_GetExt (int *valid_year, int *valid_month, int *valid_day, int *valid_hour, char *ldap_att, int ldap_att_max, char *extensions, int extensions_max, int *ra_issuance_allowed, PKIKEYPOLICIES *key_policies, int index)
 PKIKEYPOLICIES에 포함되어 있는 부가 정보들을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Add (PKIKEYPOLICIES *key_policies, const char *name, const char *id, int algorithm, int key_bit_len, const char *parameter)
 PKIKEYPOLICIES에 신규 정책을 하나 추가함 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_Create (PKICERTREQS *pkicertreqs)
 PKICERTREQS 구조체를 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_Delete (PKICERTREQS *pkicertreqs)
 PKICERTREQS 구조체를 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReq (PRIVATEKEY *privatekey, PKICERTREQS *pkicertreqs, PKIKEYPOLICIES *pkikeypolicies, int keypolicy_index, CERTIFICATE *old_cert, PRIVATEKEY *old_key, CERTIFICATE *ca_cert)
 신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReqEx_UDK (PRIVATEKEY *privatekey, PKICERTREQS *pkicertreqs, int algorithm, int key_bit_len, char *parameter, char *key_policy_id, CERTIFICATE *old_cert, PRIVATEKEY *old_key_unused, CERTIFICATE *ca_cert, char *inputVal, int inputLen)
 신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReqEx (PRIVATEKEY *privatekey, PKICERTREQS *pkicertreqs, int algorithm, int key_bit_len, char *parameter, char *key_policy_id, CERTIFICATE *old_cert, PRIVATEKEY *old_key_unsued, CERTIFICATE *ca_cert)
 신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetSubject (PKICERTREQS *pkicertreqs, const char *pSubjectName)
 PKICERTREQS의 인증서 생성 요청에 subject DN 이름을 추가한다. (RA용) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetResidentNumber (PKICERTREQS *pkicertreqs, const char *pResidentNumber)
 PKICERTREQS의 인증서 생성 요청에 사용자의 주민등록번호를 추가한다. (RA용) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_GetResidentNumber (char *pResidentNumber, int residentNumber_max, PKICERTREQS *pkicertreqs)
 PKICERTREQS의 인증서 생성 요청에서 사용자의 주민등록번호를 구한다. (RA용) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetEncryptedVID (PKICERTREQS *pkicertreqs, PRIVATEKEY *privatekey, int index, const char *pIdn, CERTIFICATE *ca_cert)
 사용자의 비공개키에 160bit 길이의 난수를 추가하고 이 난수를 사용하여 PKICERTREQS의 인증서 생성 요청에 사용자의 VID 정보를 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Create (PKICERTREPS *pkicertreps)
 PKICERTREPS 구조체를 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Delete (PKICERTREPS *pkicertreps)
 PKICERTREPS 구조체를 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Resolve (CERTIFICATE *certificate, char *err_message, int errmsg_max, PKICERTREPS *pkicertreps, int index)
 PKICERTREPS 구조체에서 발급받은 인증서를 꺼냄 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Create (PKICERTREVREQS *pkicertreqs)
 PKICERTREVREQS 구조체를 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Delete (PKICERTREVREQS *pkicertreqs)
 PKICERTREVREQS 구조체를 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Add (PKICERTREVREQS *pkicertrevreqs, CERTIFICATE *certificate, int revocation_reason)
 폐지할 인증서를 PKICERTREVREQS에 추가 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Create (PKICERTREVREPS *pkicertrevreps)
 PKICERTREPS 구조체를 생성 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Delete (PKICERTREVREPS *pkicertrevreps)
 PKICERTREPS 구조체를 삭제 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Resolve (int *revocation_status, char *err_str, int err_str_max, PKICERTREVREPS *pkicertreps, int index)
 PKICERTREVREPS의 내용을 획득 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeInitialReq (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREQS *pkicertreqs, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key, const char *sender_id, const char *sender_authcode, CERTIFICATE *recip_cert)
 CA/RA에게 전송할 인증서 발급을 위한 IR 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveInitialReq (PKICERTREQS *pkicertreqs, PKICONTEXT *pkictx, PKIMESSAGE *pkimsg, CERTIFICATE *recip_cert, CERTIFICATE *sender_cert, char *sender_authcode, time_t nowTime)
 RA/Client로부터 받은 IR 메시지를 검증/해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeInitialRep (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREPS *pkicertreps, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key)
 RA/Client로 보낼 IP 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveInitialRep (PKICERTREPS *pkicertreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
 CA/RA로부터 받은 IP 메시지를 해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyUpdateReq (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREQS *pkicertreqs, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key, CERTIFICATE *recip_cert)
 CA/RA에게 전송할 인증서 갱신을 위한 KUR 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyUpdateReq (PKICERTREQS *pkicertreqs, PKICONTEXT *pkictx, PKIMESSAGE *pkimsg, CERTIFICATE *recip_cert, CERTIFICATE *sender_cert, time_t nowTime)
 RA/Client로부터 받은 KUR 메시지를 해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyUpdateRep (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREPS *pkicertreps, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key)
 RA/Client에게 전송할 인증서 갱신한 KUP 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyUpdateRep (PKICERTREPS *pkicertreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
 CA/RA로부터 받은 KUP 메시지를 해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeRevocationReq (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREVREQS *pkicertrevreqs, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key, CERTIFICATE *recip_cert)
 CA/RA에게 전송할 인증서 폐지을 위한 RR 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveRevocationReq (PKICERTREVREQS *pkicertrevreqs, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, CERTIFICATE *recip_cert, CERTIFICATE *sender_cert, time_t nowTime)
 RA/Client로부터 받은 RR 메시지를 해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeRevocationRep (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKICERTREVREPS *pkicerrevtreps, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key)
 RA/Client로 보낼 RP 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveRevocationRep (PKICERTREVREPS *pkicertrevreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
 CA/RA로부터 받은 RP 메시지를 해석한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeConfirm (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx)
 CA/RA에 전송할 CONFIRM 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveConfirm (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, CERTIFICATE *recip_cert, CERTIFICATE *sender_cert, char *sender_authcode, time_t nowTime)
 RA/Client로부터 수신한 Confirm 메시지를 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeError (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, int status, const char *status_msg, int error_code, const char *error_msg, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key)
 RA/Client에 전송할 ERROR 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveError (int *status, char *status_msg, int status_msg_max, int *err_code, char *err_msg, int err_msg_max, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
 CA/RA로부터 수신한 ERROR 메시지를 검증하고 내용을 구한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyPoliciesReqMsg (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, char *user_id, char *user_authcode, CERTIFICATE *user_cert, PRIVATEKEY *user_key, int rauser_flag, CERTIFICATE *recip_cert, CERTIFICATE *ca_cert)
 CA/RA에게 PKIKEYPOLICIES 정보를 묻기 위한 PKI request message를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyPoliciesReqMsg (char *requester_id, int requester_id_max, PKICONTEXT *pkictx, PKIMESSAGE *pkimsg, CERTIFICATE *recip_cert, CERTIFICATE *sender_cert, char *sender_authcode)
 Client에게 받은 PKIKEYPOLICIES 정보 request message를 해석 및 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyPoliciesResMsg (PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, PKIKEYPOLICIES *key_policies, CERTIFICATE *sender_cert, PRIVATEKEY *sender_key)
 Client에게 리턴할 PKIKEYPOLICIES 정보를 담은 PKI response message를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyPoliciesResMsg (PKIKEYPOLICIES *key_policies, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx)
 CA/RA가 리턴한 PKI response message에서 PKIKEYPOLICIES 정보를 얻는다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Init ()
 Network를 초기화한다(Win32) 더 자세히 ...
 
WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_Connect (const char *ip, int port)
 주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Connect2 (const char *ip, int port, SOCKET *pSocket)
 주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다. 더 자세히 ...
 
WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_CreateAcceptSock (int port)
 ISSAC_SOCKET_Accept() 에서 사용할 SOCKET을 생성한다. 더 자세히 ...
 
WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_Accept (SOCKET sock)
 주어진 port에서 accept 더 자세히 ...
 
WA_SDK_API void FUNCCALL ISSAC_SOCKET_Close (SOCKET sock)
 ISSAC_SOCKET_Connect()에 의해 생성된 연결을 끊는다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Send (SOCKET sock, PKIMESSAGE *pPKIMessage)
 PKIMESSAGE를 전송한다. RFC2510(March 1999) 5.2 참조 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_SendError (SOCKET sock, const char *pszErrorMsg)
 PKIMessage 대신 human readable direct ERROR message를 전송한다. RFC2510(March 1999) 5.2 참조 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Receive (PKIMESSAGE *pPKIMessage, SOCKET sock, char *pszErrorMsgBuf, int nMaxBufLen)
 PKIMESSAGE를 수신한다. RFC2510(March 1999) 5.2 참조 더 자세히 ...
 
WA_SDK_API char *FUNCCALL GetVersionString (int *pMajorVersion, int *pMinorVersion)
 CMP 모듈의 버전을 출력한다. 더 자세히 ...
 

상세한 설명

CMP (인증서 관리 프로토콜)

열거형 타입 문서화

◆ ISSACAPI_CP_RETURN

열거형 멤버
ER_CP_INVALID_USER_DN 

해석할 수 없는 사용자 DN

ER_CP_INVALID_USER_ID 

해석할 수 없는 사용자 ID

ER_CP_TOO_SMALL_MSG_BUF 

입력 message 버퍼의 길이가 너무 작음

ER_CP_INVALID_AUTH_CERT 

올바르지 않은 인증기관 인증서

ER_CP_CANNOT_DECODE_MSG 

message를 decoding 할 수 없음

ER_CP_INVALID_MSG_SIG 

message의 서명이 올바르지 않음

◆ ISSACAPI_PKIMESSAGE_TYPE

열거형 멤버
ISSACAPI_PKIMESSAGE_IR 
ISSACAPI_PKIMESSAGE_IP 
ISSACAPI_PKIMESSAGE_CR 
ISSACAPI_PKIMESSAGE_CP 
ISSACAPI_PKIMESSAGE_KUR 
ISSACAPI_PKIMESSAGE_KUP 
ISSACAPI_PKIMESSAGE_KRR 
ISSACAPI_PKIMESSAGE_KRP 
ISSACAPI_PKIMESSAGE_RR 
ISSACAPI_PKIMESSAGE_RP 
ISSACAPI_PKIMESSAGE_CCR 
ISSACAPI_PKIMESSAGE_CCP 
ISSACAPI_PKIMESSAGE_CKUANN 
ISSACAPI_PKIMESSAGE_CANN 
ISSACAPI_PKIMESSAGE_RANN 
ISSACAPI_PKIMESSAGE_CRLANN 
ISSACAPI_PKIMESSAGE_CONF 
ISSACAPI_PKIMESSAGE_GENM 
ISSACAPI_PKIMESSAGE_GENP 
ISSACAPI_PKIMESSAGE_ERROR 

◆ ISSAC_CMP_PKISTATUS

열거형 멤버
ISSACAPI_CMP_PKISTATUS_ACCEPTED 
ISSACAPI_CMP_PKISTATUS_GRANTEDWITHMODS 
ISSACAPI_CMP_PKISTATUS_REJECTION 

◆ ISSAC_API_REVOCATION_REASON

열거형 멤버
ISSAC_API_REVOC_REASON_unused 
ISSAC_API_REVOC_REASON_keyCompromise 
ISSAC_API_REVOC_REASON_cACompromise 
ISSAC_API_REVOC_REASON_affiliationChanged 
ISSAC_API_REVOC_REASON_superseded 
ISSAC_API_REVOC_REASON_cessationOfOperation 
ISSAC_API_REVOC_REASON_certificateHold 

함수 문서화

◆ ISSAC_CMP_AskInitialCert()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskInitialCert ( CERTANDKEY **  cert_and_key_array,
int *  size,
char *  error_msg,
int  buf_len,
char *  raip,
short  raport,
const char *  user_id,
const char *  authcode,
const char *  resident_num,
CERTIFICATE ra_cert,
CERTIFICATE ca_cert 
)

인증코드를 통하여 CA/RA에게 전송할 인증서 발급을 요청한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : ISSACAPI_CMP_V3_ERRORS 참고
매개변수
cert_and_key_array[OUT] 발급된 인증서와 비공개키
size[OUT] 발급된 인증서의 갯수
error_msg[OUT] 에러 메세지
buf_len[OUT] 에러 메세지 길이
raip[IN] 수신 Authority(CA or RA)의 IP Address
raport[IN] 수신 Authority(CA or RA)의 Port
user_id[IN] 발급 대상자의 ID
authcode[IN] 인증코드
resident_num[IN] 발급 대상자의 주민번호(선택 사항)
ra_cert[IN] 수신 Authority(CA or RA)의 인증서
ca_cert[IN] CA의 인증서

◆ ISSAC_CMP_AskInitialCert2()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskInitialCert2 ( CERTANDKEY **  cert_and_key_array,
int *  size,
char *  error_msg,
int  buf_len,
char *  raip,
short  raport,
char *  user_id,
char *  user_dn,
CERTIFICATE admin_cert,
PRIVATEKEY admin_prikey,
const char *  resident_num,
CERTIFICATE ra_cert,
CERTIFICATE ca_cert 
)

관리자의 인증서를 통하여 CA/RA에게 전송할 인증서 발급을 요청한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : ISSACAPI_CMP_V3_ERRORS 참고
매개변수
cert_and_key_array[OUT] 발급된 인증서와 비공개키
size[OUT] 발급된 인증서의 갯수
error_msg[OUT] 에러 메세지
buf_len[OUT] 에러 메세지 길이
raip[IN] 수신 Authority(CA or RA)의 IP Address
raport[IN] 수신 Authority(CA or RA)의 Port
user_id[IN] 발급 대상자의 ID
user_dn[IN] 발급 대상자의 DN
admin_cert[IN] 송신자(관리자)의 인증서
admin_prikey[IN] 송신자(관리자)의 비공개키
resident_num[IN] 발급 대상자의 주민번호(선택 사항)
ra_cert[IN] 수신 Authority(CA or RA)의 인증서
ca_cert[IN] CA의 인증서

◆ ISSAC_CMP_AskKeyUpdate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskKeyUpdate ( CERTANDKEY **  out_cert_and_key_array,
int *  out_size,
char *  error_msg,
int  buf_len,
char *  raip,
short  raport,
CERTANDKEY in_cert_and_key_array,
int  in_size,
const char *  resident_num,
CERTIFICATE ra_cert,
CERTIFICATE ca_cert 
)
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드

◆ ISSAC_CMP_AskKeyUpdate2()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_AskKeyUpdate2 ( CERTANDKEY **  out_cert_and_key_array,
int *  out_size,
char *  error_msg,
int  buf_len,
char *  raip,
short  raport,
CERTANDKEY in_cert_and_key_array,
int  in_size,
const char *  resident_num,
CERTIFICATE admin_cert,
PRIVATEKEY admin_key,
CERTIFICATE ra_cert,
CERTIFICATE ca_cert 
)
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드

◆ ISSAC_CMP_DeleteCERTANDKEYarray()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_DeleteCERTANDKEYarray ( CERTANDKEY **  cank_array,
int  size 
)
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드

◆ ISSAC_PKIMESSAGE_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Create ( PKIMESSAGE pkimsg)

PKIMESSAGE 구조체를 초기화한다.

주의
사용 후 반드시 ISSAC_PKIMESSAGE_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkimsg[IN,OUT] 초기화 할 PKIMESSAGE

◆ ISSAC_PKIMESSAGE_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Delete ( PKIMESSAGE pkimsg)

PKIMESSAGE 에 할당된 메모리를 해제한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkimsg[IN,OUT] ISSAC_PKIMESSAGE_Create() 를 호출하여 초기화 된 DLCONTEXT

◆ ISSAC_PKIMESSAGE_GetMsgType()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetMsgType ( int *  msg_type,
char *  err_str,
int  err_str_max,
PKIMESSAGE pkimsg 
)

수신한 PKIMESSAGE의 TYPE을 알아냄. 또한 type이 ERROR일 경우 에러 메시지를 리턴

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
msg_type[OUT] PKIMESSAGE의 type
err_str[OUT] PKIMESSAGE가 ERROR일 때, 에러문자열을 리턴
err_str_max[IN] err_str 벼퍼의 최대 길이
pkimsg[IN] type을 구하려는 PKIMESSAGE

◆ ISSAC_PKIMESSAGE_GetSenderId()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetSenderId ( char *  sender_id,
int  sender_id_max,
PKIMESSAGE pkimsg 
)

수신한 PKIMESSAGE에서 송신자의 id를 구해냄

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력 변수가 올바르지 않은 경우
ISSAC_FAIL : 올바른 sender id가 들어있지 않은 경우
매개변수
sender_id[OUT]
sender_id_max[IN]
pkimsg[IN]

◆ ISSAC_PKIMESSAGE_GetSenderName()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_GetSenderName ( char *  sender_name,
int  sender_name_max,
PKIMESSAGE pkimsg 
)

수신한 PKIMESSAGE에서 송신자의 DN을 구해냄

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력 변수가 올바르지 않은 경우
ISSAC_FAIL : 올바른 sender name이 들어있지 않은 경우
매개변수
sender_name[OUT]
sender_name_max[IN]
pkimsg[IN]

◆ ISSAC_PKICONTEXT_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICONTEXT_Create ( PKICONTEXT pkictx)

PKICONTEXT 구조체를 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkictx[IN,OUT]

◆ ISSAC_PKICONTEXT_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICONTEXT_Delete ( PKICONTEXT pkictx)

PKICONTEXT 구조체를 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkictx[IN,OUT]

◆ ISSAC_PKIKEYPOLICIES_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Create ( PKIKEYPOLICIES key_policy)

PKIKEYPOLICIES type을 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policy[IN] 생성할 PKIKEYPOLICIES type

◆ ISSAC_PKIKEYPOLICIES_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Delete ( PKIKEYPOLICIES key_policy)

PKIKEYPOLICIES type을 메모리에서 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policy[IN] 삭제할 PKIKEYPOLICIES type

◆ ISSAC_PKIKEYPOLICIES_Read_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Read_File ( PKIKEYPOLICIES key_policy,
const char *  filename 
)

PKIKEYPOLICIES type을 파일에서 읽어들임

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policy[IN] 읽어올 PKIKEYPOLICIES type
filename[IN] 읽어올 PKIKEYPOLICIES 파일의 경로

◆ ISSAC_PKIKEYPOLICIES_Write_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Write_File ( const char *  filename,
PKIKEYPOLICIES key_policy 
)

PKIKEYPOLICIES type을 파일에 저장

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
filename[IN] 출력할 PKIKEYPOLICIES 파일의 경로
key_policy[IN] 출력할 PKIKEYPOLICIES type

◆ ISSAC_PKIKEYPOLICIES_Read_Memory()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Read_Memory ( PKIKEYPOLICIES key_policy,
const void *  buffer,
int  buffer_len 
)

PKIKEYPOLICIES type을 메모리에서 읽어들임

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policy[IN] PKIKEYPOLICIES
buffer[IN] 입력 버퍼
buffer_len[IN] 입력 버퍼 크기

◆ ISSAC_PKIKEYPOLICIES_Write_Memory()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Write_Memory ( void *  buffer,
int *  buffer_len,
int  buffer_alloc_len,
PKIKEYPOLICIES key_policy 
)

PKIKEYPOLICIES type을 메모리에 저장

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
buffer[OUT] 출력 버퍼
buffer_len[OUT] 실제 출력 크기
buffer_alloc_len[IN] 출력 버퍼 크기
key_policy[IN] 저장할 PKIKEYPOLICIES type

◆ ISSAC_PKIKEYPOLICIES_Get()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Get ( char *  name,
int  name_max,
char *  id,
int  id_max,
int *  algorithm,
int *  key_bit_len,
char *  parameter,
int  parameter_len,
PKIKEYPOLICIES key_policies,
int  index 
)

PKIKEYPOLICIES 의 내용을 가져온다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
name[OUT] Key Policy의 이름
name_max[IN] name 버퍼의 최대 길이
id[OUT] Key Policy의 id
id_max[IN] id 버퍼의 최대 길이
algorithm[OUT] Key Policy의 공개키 종류
key_bit_len[OUT] Key Policy의 공개키 bit 길이
parameter[OUT] Key Policy의 공개키 도메인 파라메터
parameter_len[IN] parameter 버퍼의 최대 길이
key_policies[IN] 필요한 key policy를 꺼낼 PKIKEYPOLICIES type
index[IN] PKIEKYPOLICIES에서 꺼낼 key policy의 index

◆ ISSAC_PKIKEYPOLICIES_GetExt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_GetExt ( int *  valid_year,
int *  valid_month,
int *  valid_day,
int *  valid_hour,
char *  ldap_att,
int  ldap_att_max,
char *  extensions,
int  extensions_max,
int *  ra_issuance_allowed,
PKIKEYPOLICIES key_policies,
int  index 
)

PKIKEYPOLICIES에 포함되어 있는 부가 정보들을 가져온다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
valid_year[OUT] 유효기간 (연)
valid_month[OUT] 유효기간 (월)
valid_day[OUT] 유효기간 (일)
valid_hour[OUT] 유효기간 (시)
ldap_att[OUT] 사용자 인증서의 LDAP attribute 값
ldap_att_max[IN] ldap_att 버퍼의 최대 길이
extensions[OUT] 인증서에 들어갈 extensions들의 내용
extensions_max[IN] extensions 버퍼의 최대 길이
ra_issuance_allowed[OUT] 현 RA에게 사용자 인증서 발급이 허용되었는지의 여부
key_policies[IN] 필요한 key policy를 꺼낼 PKIKEYPOLICIES type
index[IN] PKIEKYPOLICIES에서 꺼낼 key policy의 index

◆ ISSAC_PKIKEYPOLICIES_Add()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Add ( PKIKEYPOLICIES key_policies,
const char *  name,
const char *  id,
int  algorithm,
int  key_bit_len,
const char *  parameter 
)

PKIKEYPOLICIES에 신규 정책을 하나 추가함

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policies[OUT] 필요한 key policy를 꺼낼 PKIKEYPOLICIES type
name[IN] Key Policy의 이름
id[IN] Key Policy의 id
algorithm[IN] Key Policy의 공개키 종류
key_bit_len[IN] Key Policy의 공개키 bit 길이
parameter[IN] Key Policy의 공개키 도메인 파라메터

◆ ISSAC_PKICERTREQS_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_Create ( PKICERTREQS pkicertreqs)

PKICERTREQS 구조체를 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT]

◆ ISSAC_PKICERTREQS_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_Delete ( PKICERTREQS pkicertreqs)

PKICERTREQS 구조체를 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT]

◆ ISSAC_PKICERTREQS_AddCertReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReq ( PRIVATEKEY privatekey,
PKICERTREQS pkicertreqs,
PKIKEYPOLICIES pkikeypolicies,
int  keypolicy_index,
CERTIFICATE old_cert,
PRIVATEKEY old_key,
CERTIFICATE ca_cert 
)

신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_PUBALG : 올바르지 않은 공개키 알고리즘
ER_CMP_FAIL_TO_CREATE_KEYPAIR : 키쌍 생성 실패
매개변수
privatekey[OUT] 생성된 비공개키
pkicertreqs[IN,OUT] 신규 인증서 생성 요청이 추가될 PKICERTREQS
pkikeypolicies[IN] CA/RA에게서 받은 인증서의 공개키를 위한 Key Policies
keypolicy_index[IN] pkikeypolicies에서 인증서 생성 요청에 사용할 policy의 index 번호
old_cert[IN] 인증서 갱신 시에 사용할 이전 사용자 인증서. 등록 시에는 NULL 가능
old_key[IN] 인증서 갱신 시에 사용할 이전 사용자 비공개키. 등록 시에는 NULL 가능
ca_cert[IN] CA의 인증서

◆ ISSAC_PKICERTREQS_AddCertReqEx_UDK()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReqEx_UDK ( PRIVATEKEY privatekey,
PKICERTREQS pkicertreqs,
int  algorithm,
int  key_bit_len,
char *  parameter,
char *  key_policy_id,
CERTIFICATE old_cert,
PRIVATEKEY old_key_unused,
CERTIFICATE ca_cert,
char *  inputVal,
int  inputLen 
)

신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_PUBALG : 올바르지 않은 공개키 알고리즘
ER_CMP_FAIL_TO_CREATE_KEYPAIR : 키쌍 생성 실패
매개변수
privatekey[OUT] 생성된 비공개키
pkicertreqs[IN,OUT] 신규 인증서 생성 요청이 추가될 PKICERTREQS
algorithm[IN]
key_bit_len[IN]
parameter[IN]
key_policy_id[IN]
old_cert[IN] 인증서 갱신 시에 사용할 이전 사용자 인증서. 등록시에는 NULL 가능
old_key_unused[IN] 인증서 갱신 시에 사용할 이전 사용자 비공개키. 등록시에는 NULL 가능 (사용안함)
ca_cert[IN] CA의 인증서
inputVal[IN] user input value. ex) id, pass
inputLen[IN] user input value length

◆ ISSAC_PKICERTREQS_AddCertReqEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_AddCertReqEx ( PRIVATEKEY privatekey,
PKICERTREQS pkicertreqs,
int  algorithm,
int  key_bit_len,
char *  parameter,
char *  key_policy_id,
CERTIFICATE old_cert,
PRIVATEKEY old_key_unsued,
CERTIFICATE ca_cert 
)

신규 키쌍을 생성하고, PKICERTREQS 구조체에 신규 인증서 생성 요청을 추가

Remarks
ISSAC_PKICERTREQS_AddCertReq()와는 달리 PKIKEYPOLICIES를 사용하지 않음
반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_PUBALG : 올바르지 않은 공개키 알고리즘
ER_CMP_FAIL_TO_CREATE_KEYPAIR : 키쌍 생성 실패
매개변수
privatekey[OUT] 생성된 비공개키
pkicertreqs[IN,OUT] 신규 인증서 생성 요청이 추가될 PKICERTREQS
algorithm[IN] 생성할 키쌍의 알고리즘
key_bit_len[IN] 생성할 키쌍의 키 길이 (bit 단위)
parameter[IN] 생성한 키쌍의 도메인 파라메터. 알고리즘이 RSA인 경우에는 NULL을 주는 것이 가능
key_policy_id[IN] KeyPolicy의 ID. NULL을 주는 것이 가능
old_cert[IN] 인증서 갱신 시에 사용할 이전 사용자 인증서. 등록시에는 NULL 가능
old_key_unsued[IN] 인증서 갱신 시에 사용할 이전 사용자 비공개키. 등록시에는 NULL 가능 (사용안함)
ca_cert[IN] CA의 인증서

◆ ISSAC_PKICERTREQS_SetSubject()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetSubject ( PKICERTREQS pkicertreqs,
const char *  pSubjectName 
)

PKICERTREQS의 인증서 생성 요청에 subject DN 이름을 추가한다. (RA용)

Remarks
Client로부터 날아온 인증서 생성 요청에는 Client의 Id(reference number)만이 들어있을 뿐 Client의 DN값은 들어있지 않다.
이 DN 정보는 RA가 Client Id를 기준으로 인증서 생성 요청에 넣어주어야만 한다.
이 함수는 인증서 생성 요청에 적절한 Client의 DN을 넣어주는 기능을 한다.
PKICERTREQS 내의 모든 인증서 생성 요청에 대해 입력으로 준 동일한 DN을 subject 이름으로 적용한다.
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT] 신규 subject name이 추가될 PKICERTREQS
pSubjectName[IN] 신규 subject name (ex:"cn=user1,c=kr")

◆ ISSAC_PKICERTREQS_SetResidentNumber()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetResidentNumber ( PKICERTREQS pkicertreqs,
const char *  pResidentNumber 
)

PKICERTREQS의 인증서 생성 요청에 사용자의 주민등록번호를 추가한다. (RA용)

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT] 주민등록번호 정보가 추가될 PKICERTREQS
pResidentNumber[IN] 주민등록번호 (ex:"770111-1234567")

◆ ISSAC_PKICERTREQS_GetResidentNumber()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_GetResidentNumber ( char *  pResidentNumber,
int  residentNumber_max,
PKICERTREQS pkicertreqs 
)

PKICERTREQS의 인증서 생성 요청에서 사용자의 주민등록번호를 구한다. (RA용)

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pResidentNumber[OUT] 주민등록번호 (ex:"770111-1234567")
residentNumber_max[IN] pResidentNumber 변수 버퍼의 최대 길이
pkicertreqs[IN] 주민등록번호 정보를 가진 PKICERTREQS

◆ ISSAC_PKICERTREQS_SetEncryptedVID()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetEncryptedVID ( PKICERTREQS pkicertreqs,
PRIVATEKEY privatekey,
int  index,
const char *  pIdn,
CERTIFICATE ca_cert 
)

사용자의 비공개키에 160bit 길이의 난수를 추가하고 이 난수를 사용하여 PKICERTREQS의 인증서 생성 요청에 사용자의 VID 정보를 추가한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT] 특정 요청에 EncryptedVID 정보가 추가될 PKICERTREQS
privatekey[IN,OUT] EncryptedVID가 추가될 요청에 대응하는 비공개키. 내부에 난수가 추가됨
index[IN] pkicertreqs중 EncryptedVID가 추가될 요청의 index
pIdn[IN] 사용자 식별번호. 주민등록번호 등등 (ex:"770111-1234567")
ca_cert[IN] CA의 인증서

◆ ISSAC_PKICERTREPS_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Create ( PKICERTREPS pkicertreps)

PKICERTREPS 구조체를 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreps[IN,OUT]

◆ ISSAC_PKICERTREPS_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Delete ( PKICERTREPS pkicertreps)

PKICERTREPS 구조체를 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreps[IN,OUT]

◆ ISSAC_PKICERTREPS_Resolve()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Resolve ( CERTIFICATE certificate,
char *  err_message,
int  errmsg_max,
PKICERTREPS pkicertreps,
int  index 
)

PKICERTREPS 구조체에서 발급받은 인증서를 꺼냄

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_INDEX : index 변수의 값이 범위를 벗어남
ER_CMP_STATUS_REJECTED : 인증서 발급 요청이 거부당함 (에러 메시지 리턴)
매개변수
certificate[OUT] 발급받은 인증서
err_message[OUT] 요청한 인증서의 발급이 실패한 경우에 CA/RA가 보낸 에러 메시지. 성공 시에는 "".
errmsg_max[IN] err_message 버퍼의 최대 길이
pkicertreps[IN] 인증서 생성 응답을 담고 있는 PKICERTREPS 구조체
index[IN] pkicertreps에 들어있는 여러 인증서 응답들 중 몇번째 인증서를 꺼낼 것인지를 지정

◆ ISSAC_PKICERTREVREQS_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Create ( PKICERTREVREQS pkicertreqs)

PKICERTREVREQS 구조체를 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT]

◆ ISSAC_PKICERTREVREQS_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Delete ( PKICERTREVREQS pkicertreqs)

PKICERTREVREQS 구조체를 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertreqs[IN,OUT]

◆ ISSAC_PKICERTREVREQS_Add()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Add ( PKICERTREVREQS pkicertrevreqs,
CERTIFICATE certificate,
int  revocation_reason 
)

폐지할 인증서를 PKICERTREVREQS에 추가

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertrevreqs[OUT] 폐지 요청을 추가할 PKICERTREVREQS 구조체
certificate[IN] 폐지할 인증서
revocation_reason[IN] 폐지 사유 (bitwise OR 사용 가능)

◆ ISSAC_PKICERTREVREPS_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Create ( PKICERTREVREPS pkicertrevreps)

PKICERTREPS 구조체를 생성

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertrevreps[IN,OUT]

◆ ISSAC_PKICERTREVREPS_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Delete ( PKICERTREVREPS pkicertrevreps)

PKICERTREPS 구조체를 삭제

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkicertrevreps[IN,OUT]

◆ ISSAC_PKICERTREVREPS_Resolve()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Resolve ( int *  revocation_status,
char *  err_str,
int  err_str_max,
PKICERTREVREPS pkicertreps,
int  index 
)

PKICERTREVREPS의 내용을 획득

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_INDEX : index 변수의 값이 범위를 벗어남
ER_CMP_STATUS_REJECTED : 인증서 폐지 요청이 거부당함 (에러 메시지 리턴)
매개변수
revocation_status[OUT]
err_str[OUT]
err_str_max[IN]
pkicertreps[IN]
index[IN]

◆ ISSAC_CMP_MakeInitialReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeInitialReq ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREQS pkicertreqs,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key,
const char *  sender_id,
const char *  sender_authcode,
CERTIFICATE recip_cert 
)

CA/RA에게 전송할 인증서 발급을 위한 IR 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREQS : 입력된 PKICERTREQS에 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 IR PKIMessage
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkicertreqs[IN] 인증서 발급 요청 메시지
sender_cert[IN] 송신자(RA/Client)의 인증서. ID 사용시 NULL 가능
sender_key[IN] 송신자(RA/Client)의 비공개키. ID 사용시 NULL 가능
sender_id[IN] 송신자(Client)의 ID, 인증서 사용시 NULL 가능
sender_authcode[IN] 송신자(Client)의 인증코드, 인증서 사용시 NULL 가능
recip_cert[IN] 수신 Authority(CA/RA)의 인증서

◆ ISSAC_CMP_ResolveInitialReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveInitialReq ( PKICERTREQS pkicertreqs,
PKICONTEXT pkictx,
PKIMESSAGE pkimsg,
CERTIFICATE recip_cert,
CERTIFICATE sender_cert,
char *  sender_authcode,
time_t  nowTime 
)

RA/Client로부터 받은 IR 메시지를 검증/해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_POP : 인증서 요청 메시지 안의 POP 검증 실패
매개변수
pkicertreqs[OUT] 보내온 pki message에서 구한 PKICERTREQS
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkimsg[IN] 수신한 IR PKIMESSAGE
recip_cert[IN] 수신자(CA/RA)의 인증서
sender_cert[IN] 송신자(RA/Client)의 인증서. 인증코드 사용시 NULL 가능
sender_authcode[IN] 송신자(Client)의 인증코드. 인증서 사용시 NULL 가능
nowTime[IN] 검증 시간. 0을 주면 현재 시간으로 검증

◆ ISSAC_CMP_MakeInitialRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeInitialRep ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREPS pkicertreps,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key 
)

RA/Client로 보낼 IP 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREPS : 입력된 PKICERTREPS가 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 IP PKIMessage
pkictx[IN] ISSAC_CMP_ResolveInitialReq()에서 구한 PKICONTEXT
pkicertreps[IN] 생성한 인증서를 담고 있는 PKICERTREPS 구조체
sender_cert[IN] 송신자(CA/RA)의 인증서
sender_key[IN] 송신자(CA/RA)의 비공개키

◆ ISSAC_CMP_ResolveInitialRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveInitialRep ( PKICERTREPS pkicertreps,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
time_t  nowTime 
)

CA/RA로부터 받은 IP 메시지를 해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_POP : 인증서 요청 메시지 안의 POP 검증 실패
ER_CMP_INVALID_MSG_SENDER : PKIMessage의 송신자가 올바르지 않음
ER_CMP_INVALID_RECIPNONCE : 수신자 NONCE가 올바르지 않음
ER_CMP_INVALID_SENDERNONCE : 송신자 NONCE가 올바르지 않음
ER_CMP_INVALID_TRANSAC_ID : Transaction ID가 올바르지 않음
매개변수
pkicertreps[OUT] CA가 발급한 사용자의 인증서 응답들
pkimsg[IN] CA/RA가 보낸 IP PKIMessage
pkictx[IN] ISSAC_CMP_MakeInitialReq()에서 구한 PKICONTEXT
nowTime[IN] 현재 시각 (0이면 System의 현재 시간값 사용)

◆ ISSAC_CMP_MakeKeyUpdateReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyUpdateReq ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREQS pkicertreqs,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key,
CERTIFICATE recip_cert 
)

CA/RA에게 전송할 인증서 갱신을 위한 KUR 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREQS : 입력된 PKICERTREQS이 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 KUR PKIMessage
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkicertreqs[IN] 인증서 발급 요청 메시지
sender_cert[IN] 송신자(RA/Client)의 인증서. ID 사용시 NULL 가능
sender_key[IN] 송신자(RA/Client)의 비공개키. ID 사용시 NULL 가능
recip_cert[IN] 수신 Authority(CA or RA)의 인증서

◆ ISSAC_CMP_ResolveKeyUpdateReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyUpdateReq ( PKICERTREQS pkicertreqs,
PKICONTEXT pkictx,
PKIMESSAGE pkimsg,
CERTIFICATE recip_cert,
CERTIFICATE sender_cert,
time_t  nowTime 
)

RA/Client로부터 받은 KUR 메시지를 해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_POP : 인증서 요청 메시지 안의 POP 검증 실패
매개변수
pkicertreqs[OUT] 보내온 pki message에서 구한 PKICERTREQS
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkimsg[IN] 수신한 pki message
recip_cert[IN] 수신자의 인증서
sender_cert[IN] 송신자(RA/Client)의 인증서. ID 사용시 NULL 가능
nowTime[IN] 검증 시간. 0을 주면 현재 시간으로 검증

◆ ISSAC_CMP_MakeKeyUpdateRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyUpdateRep ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREPS pkicertreps,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key 
)

RA/Client에게 전송할 인증서 갱신한 KUP 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREPS : 입력된 PKICERTREPS가 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 IP PKIMessage
pkictx[IN] ISSAC_CMP_ResolveKeyUpdateReq()에서 구한 PKICONTEXT
pkicertreps[IN] 생성한 인증서를 담고 있는 PKICERTREPS 구조체
sender_cert[IN] 송신자(CA/RA)의 인증서
sender_key[IN] 송신자(CA/RA)의 비공개키

◆ ISSAC_CMP_ResolveKeyUpdateRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyUpdateRep ( PKICERTREPS pkicertreps,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
time_t  nowTime 
)

CA/RA로부터 받은 KUP 메시지를 해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_POP : 인증서 요청 메시지 안의 POP 검증 실패
ER_CMP_INVALID_MSG_SENDER : PKIMessage의 송신자가 올바르지 않음
ER_CMP_INVALID_RECIPNONCE : 수신자 NONCE가 올바르지 않음
ER_CMP_INVALID_SENDERNONCE : 송신자 NONCE가 올바르지 않음
ER_CMP_INVALID_TRANSAC_ID : Transaction ID가 올바르지 않음
매개변수
pkicertreps[OUT] CA가 발급한 사용자의 인증서 응답들
pkimsg[IN] CA가 보낸 KUP PKIMessage
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
nowTime[IN] 현재 시각 (0이면 System의 현재 시간값 사용)

◆ ISSAC_CMP_MakeRevocationReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeRevocationReq ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREVREQS pkicertrevreqs,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key,
CERTIFICATE recip_cert 
)

CA/RA에게 전송할 인증서 폐지을 위한 RR 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
R_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREVREQS : 입력된 PKICERTREVREQS이 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 RR PKIMessage
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkicertrevreqs[IN] 인증서 폐지 요청 정보가 들어있는 PKICERTREVREQS
sender_cert[IN] 송신자(RA/Client)의 인증서
sender_key[IN] 송신자(RA/Client)의 비공개키
recip_cert[IN] 수신자(CA/RA)의 인증서

◆ ISSAC_CMP_ResolveRevocationReq()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveRevocationReq ( PKICERTREVREQS pkicertrevreqs,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
CERTIFICATE recip_cert,
CERTIFICATE sender_cert,
time_t  nowTime 
)

RA/Client로부터 받은 RR 메시지를 해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
매개변수
pkicertrevreqs[OUT] 폐지하고자 하는 인증서의 정보 PKCERTREVREQS
pkimsg[IN] RA/Client가 보낸 RR PKIMessage
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
recip_cert[IN] PKIMESSAGE를 보낸 RA/Client의 인증서
sender_cert[IN] CA의 인증서
nowTime[IN] 현재 시각(0이면 System의 현재 시간값 사용)

◆ ISSAC_CMP_MakeRevocationRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeRevocationRep ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKICERTREVREPS pkicerrevtreps,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key 
)

RA/Client로 보낼 RP 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_INVALID_CERTREVREPS : 입력된 PKICERTREVREPS가 올바르지 않음
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 RP PKIMessage
pkictx[OUT] ISSAC_CMP_ResolveRevocationReq()에서 구한 PKICONTEXT
pkicerrevtreps[IN] 인증서 폐지 응답 정보가 들어있는 PKICERTREVREPS
sender_cert[IN] 송신자(RA/Client)의 인증서
sender_key[IN] 송신자(RA/Client)의 비공개키

◆ ISSAC_CMP_ResolveRevocationRep()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveRevocationRep ( PKICERTREVREPS pkicertrevreps,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
time_t  nowTime 
)

CA/RA로부터 받은 RP 메시지를 해석한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_MSG_SENDER : PKIMessage의 송신자가 올바르지 않음
ER_CMP_INVALID_RECIPNONCE : 수신자 NONCE가 올바르지 않음
ER_CMP_INVALID_SENDERNONCE : 송신자 NONCE가 올바르지 않음
ER_CMP_INVALID_TRANSAC_ID : Transaction ID가 올바르지 않음
매개변수
pkicertrevreps[OUT] CA의 인증서 폐지 응답들
pkimsg[IN] CA가 보낸 IP PKIMessage
pkictx[IN] ISSAC_CMP_MakeRevocationReq()에서 구한 PKICONTEXT
nowTime[IN] 현재 시각(0이면 System의 현재 시간값 사용)

◆ ISSAC_CMP_MakeConfirm()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeConfirm ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx 
)

CA/RA에 전송할 CONFIRM 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_FAIL_TO_CREATE_PROTECTION : 인증 프로텍션 생성 실패
ER_CMP_FAIL_TO_CREATE_HEADER : PKIHEADER 생성에 실패
매개변수
pkimsg[OUT] 생성된 PKICONFIRM 메시지
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하고 있는 구조체

◆ ISSAC_CMP_ResolveConfirm()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveConfirm ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
CERTIFICATE recip_cert,
CERTIFICATE sender_cert,
char *  sender_authcode,
time_t  nowTime 
)

RA/Client로부터 수신한 Confirm 메시지를 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_CMP_INVALID_MSG_TYPE : PKIMessage의 type이 올바르지 않음
ER_CMP_INVALID_MSG_VERSION : PKIMessage의 version이 v2가 아님
ER_CMP_INVALID_MSG_RECIPIENT : PKIMessage의 수신자가 올바르지 않음
ER_CMP_INVALID_MSG_RECIP_KID : PKIMessage의 수신자 Key Id가 올바르지 않음
ER_CMP_INVALID_MSG_PROTECTION : PKIMessage의 protection 검증 실패
ER_CMP_INVALID_MSG_SENDER : PKIMessage의 송신자가 올바르지 않음
ER_CMP_INVALID_RECIPNONCE : 수신자 NONCE가 올바르지 않음
ER_CMP_INVALID_SENDERNONCE : 송신자 NONCE가 올바르지 않음
ER_CMP_INVALID_TRANSAC_ID : Transaction ID가 올바르지 않음
매개변수
pkimsg[OUT] 검증할 CONFIRM 메시지
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하고 있는 구조체
recip_cert[IN] 수신자 인증서
sender_cert[IN] 송신자 인증서
sender_authcode[IN] 인증코드
nowTime[IN] 현재시각 (0이면 system의 현재 시간값 사용)

◆ ISSAC_CMP_MakeError()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeError ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
int  status,
const char *  status_msg,
int  error_code,
const char *  error_msg,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key 
)

RA/Client에 전송할 ERROR 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkimsg[OUT] 생성된 PKI 메시지
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하고 있는 구조체
status[IN] 상태 정보
status_msg[IN] 상태 정보 메시지, NULL 가능
error_code[IN] 에러 코드
error_msg[IN] 에러 메시지, NULL 가능
sender_cert[IN] 송신자(CA/RA)의 인증서.
sender_key[IN] 송신자(CA/RA)의 비공개키

◆ ISSAC_CMP_ResolveError()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveError ( int *  status,
char *  status_msg,
int  status_msg_max,
int *  err_code,
char *  err_msg,
int  err_msg_max,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
time_t  nowTime 
)

CA/RA로부터 수신한 ERROR 메시지를 검증하고 내용을 구한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
status[OUT] 상태 정보
status_msg[OUT] 상태 정보 메시지
status_msg_max[IN] 상태 정보 메시지의 최대 크기
err_code[OUT] 에러 코드
err_msg[OUT] 에러 메시지
err_msg_max[IN] 에러 메시지의 최대 크기
pkimsg[IN] 검증할 ERROR 메시지
pkictx[IN] PKICONTEXT
nowTime[IN] 현재시각 (0이면 system의 현재 시간값 사용)

◆ ISSAC_CMP_MakeKeyPoliciesReqMsg()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyPoliciesReqMsg ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
char *  user_id,
char *  user_authcode,
CERTIFICATE user_cert,
PRIVATEKEY user_key,
int  rauser_flag,
CERTIFICATE recip_cert,
CERTIFICATE ca_cert 
)

CA/RA에게 PKIKEYPOLICIES 정보를 묻기 위한 PKI request message를 생성한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkimsg[OUT] 생성된 KeyPolicy request PKIMessage
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
user_id[IN] 사용자의 ID 정보. user_cert를 쓸 경우에는 NULL 가능
user_authcode[IN] 사용자의 인증코드. user_cert를 쓸 경우에는 NULL 가능
user_cert[IN] 사용자의 인증서. user_id를 쓸 경우에는 NULL 가능
user_key[IN] 사용자의 비공개키. user_id를 쓸 경우에는 NULL 가능
rauser_flag[IN] 요청자가 RA일 경우, 이 값을 1로 주면 요청자 자신의 PKIKEYPOLICIES 정보가 아니라, RA 요청자가 자신의 사용자들에게 mapping 해줄 수 있는 PKIKEYPOLICIES를 요청하게 된다.
recip_cert[IN] 수신자 인증서
ca_cert[IN] CA 인증서

◆ ISSAC_CMP_ResolveKeyPoliciesReqMsg()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyPoliciesReqMsg ( char *  requester_id,
int  requester_id_max,
PKICONTEXT pkictx,
PKIMESSAGE pkimsg,
CERTIFICATE recip_cert,
CERTIFICATE sender_cert,
char *  sender_authcode 
)

Client에게 받은 PKIKEYPOLICIES 정보 request message를 해석 및 검증한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
requester_id[OUT] 어떤 정책들 mapping되었는지 알고자하는 사용자의 identifier. Reference number 혹은 DN 값이 된다.
requester_id_max[IN] requester_id 버퍼의 최대 길이 한도
pkictx[OUT] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
pkimsg[IN] 수신한 IR PKIMESSAGE
recip_cert[IN] 수신자(RA)의 인증서
sender_cert[IN] 송신자(Client)의 인증서. 인증코드 사용시 NULL 가능
sender_authcode[IN] 송신자(Client)의 인증코드. 인증서 사용시 NULL 가능

◆ ISSAC_CMP_MakeKeyPoliciesResMsg()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeKeyPoliciesResMsg ( PKIMESSAGE pkimsg,
PKICONTEXT pkictx,
PKIKEYPOLICIES key_policies,
CERTIFICATE sender_cert,
PRIVATEKEY sender_key 
)

Client에게 리턴할 PKIKEYPOLICIES 정보를 담은 PKI response message를 생성한다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
pkimsg[OUT] 정책정보를 담은 PKIMessage
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체
key_policies[IN] CA/RA가 리턴한 사용자의 PKIKEYPOLICIES 정보
sender_cert[IN] 메시지를 생성하는 CA/RA의 인증서
sender_key[IN] 메시지를 생성하는 CA/RA의 비공개키

◆ ISSAC_CMP_ResolveKeyPoliciesResMsg()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyPoliciesResMsg ( PKIKEYPOLICIES key_policies,
PKIMESSAGE pkimsg,
PKICONTEXT pkictx 
)

CA/RA가 리턴한 PKI response message에서 PKIKEYPOLICIES 정보를 얻는다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
매개변수
key_policies[OUT] CA/RA가 리턴한 사용자의 PKIKEYPOLICIES 정보
pkimsg[IN] CA/RA가 보낸 IP PKIMessage
pkictx[IN] PKIMessage 처리시에 필요한 데이터들을 저장하는 구조체

◆ ISSAC_SOCKET_Init()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Init ( )

Network를 초기화한다(Win32)

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드

◆ ISSAC_SOCKET_Connect()

WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_Connect ( const char *  ip,
int  port 
)

주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다.

반환값
성공 시 소켓 설명자, 실패 시 SDK 에러 코드. 소켓 설명자의 값이 70000번 대 까지 갈 경우, SDK 에러 코드와 식별이 불가능한 문제가 있음
참고
ISSAC_SOCKET_Close()
매개변수
ip[IN] 서버의 IP
port[IN] 서버의 port

◆ ISSAC_SOCKET_Connect2()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Connect2 ( const char *  ip,
int  port,
SOCKET pSocket 
)

주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다.

Remarks
기존의 함수가 return 값으로 양수의 에러번호와 소켓 번호를 함께 써서, 식별 불가능한 문제가 있는 것을 일부 수정
반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
참고
ISSAC_SOCKET_Close()
매개변수
ip[IN] 서버의 IP
port[IN] 서버의 port
pSocket[OUT] 소켓 설명자

◆ ISSAC_SOCKET_CreateAcceptSock()

WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_CreateAcceptSock ( int  port)

ISSAC_SOCKET_Accept() 에서 사용할 SOCKET을 생성한다.

반환값
소켓 설명자
매개변수
port[IN] 서버의 port

◆ ISSAC_SOCKET_Accept()

WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_Accept ( SOCKET  sock)

주어진 port에서 accept

반환값
소켓 설명자
매개변수
sock[IN] 소켓 설명자

◆ ISSAC_SOCKET_Close()

WA_SDK_API void FUNCCALL ISSAC_SOCKET_Close ( SOCKET  sock)

ISSAC_SOCKET_Connect()에 의해 생성된 연결을 끊는다.

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
참고
ISSAC_SOCKET_Connect()
매개변수
sock[IN] ISSAC_SOCKET_Connect()에 의해 생성된 socket

◆ ISSAC_PKIMESSAGE_Send()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Send ( SOCKET  sock,
PKIMESSAGE pPKIMessage 
)

PKIMESSAGE를 전송한다. RFC2510(March 1999) 5.2 참조

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
참고
ISSAC_SOCKET_Connect()
매개변수
sock[IN] ISSAC_SOCKET_Connect()에 의해 생성된 socket
pPKIMessage[IN] 전송할 PKIMESSAGE

◆ ISSAC_PKIMESSAGE_SendError()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_SendError ( SOCKET  sock,
const char *  pszErrorMsg 
)

PKIMessage 대신 human readable direct ERROR message를 전송한다. RFC2510(March 1999) 5.2 참조

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
참고
ISSAC_SOCKET_Connect()
매개변수
sock[IN] ISSAC_SOCKET_Connect()에 의해 생성된 socket
pszErrorMsg[IN] 전송할 error message

◆ ISSAC_PKIMESSAGE_Receive()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Receive ( PKIMESSAGE pPKIMessage,
SOCKET  sock,
char *  pszErrorMsgBuf,
int  nMaxBufLen 
)

PKIMESSAGE를 수신한다. RFC2510(March 1999) 5.2 참조

반환값
ISSAC_SUCCESS : 성공
그 외 : 에러코드
참고
ISSAC_SOCKET_Connect()
매개변수
pPKIMessage[OUT] 수신된 PKIMESSAGE
sock[IN] ISSAC_SOCKET_Connect()에 의해 생성된 socket
pszErrorMsgBuf[IN] 에러 메시지(0x06)가 수신된 경우, 추가 메시지가 저장될 버퍼 (pszErrorMsgBuf가 NULL이면 저장하지 않음). 이때 return 값은 ER_CMP_ERRORMSG_RECEIVED이 된다.
nMaxBufLen[IN] pszErrorMsgBuf의 최대 크기

◆ GetVersionString()

WA_SDK_API char* FUNCCALL GetVersionString ( int *  pMajorVersion,
int *  pMinorVersion 
)

CMP 모듈의 버전을 출력한다.

반환값
전체 버전 (3.1)
매개변수
pMajorVersion[OUT] Major 버전 (3)
pMinorVersion[OUT] Minor 버전 (1)