WA-SDK  3.0.4.0
WA-SDK
issacapi_cmp_v3.h
이 파일의 문서화 페이지로 가기
1 /*
2  Copyright (C) 2002 PENTA SECURITY SYSTEMS, INC.
3  All rights reserved
4 
5  THIS IS UNPUBLISHED PROPRIETARY
6  SOURCE CODE OF PENTA SECURITY SYSTEMS, INC.
7  The copyright notice above does not evidence any actual or intended
8  publication of such source code.
9 
10  Filename : issacapi_cmp_v3.h
11 */
12 
13 #ifndef _issacapi_cmp_v3_h
14 #define _issacapi_cmp_v3_h
15 
16 #include "wasdk_public.h"
17 
19 
20 #ifndef WIN32
21 #define SOCKET int
22 #define INVALID_SOCKET (-1)
23 #define SOCKET_ERROR (-1)
24 #define closesocket(s) close(s)
25 #else
26 #include <winsock2.h>
27 #endif
28 
33 
34 
36 typedef struct _PKIMESSAGE {
37  void *message;
38 } PKIMESSAGE;
39 
41 typedef struct _PKICONTEXT {
42  void *context;
43 } PKICONTEXT;
44 
46 typedef struct _PKIKEYPOLICIES {
47  int size;
48  void *policies;
50 
52 typedef struct _PKICERTREQS {
53  int size;
54  void *certreqs;
55 } PKICERTREQS;
56 
58 typedef struct _PKICERTREPS {
59  int size;
60  void *certreps;
61 } PKICERTREPS;
62 
64 typedef struct _PKICERTREVREQS {
65  int size;
66  void *certrevreqs;
68 
70 typedef struct _PKICERTREVREPS {
71  int size;
72  void *certrevreps;
74 
76 typedef enum {
84 
86 typedef enum {
108 
110 typedef enum {
115 
117 typedef enum {
126 
134  PKIMESSAGE *pkimsg
135 );
136 
143  PKIMESSAGE *pkimsg
144 );
145 
152  int *msg_type,
153  char *err_str,
154  int err_str_max,
155  PKIMESSAGE *pkimsg
156 );
157 
165  char *sender_id,
166  int sender_id_max,
167  PKIMESSAGE *pkimsg
168 );
169 
177  char *sender_name,
178  int sender_name_max,
179  PKIMESSAGE *pkimsg
180 );
181 
188  PKICONTEXT *pkictx
189 );
190 
197  PKICONTEXT *pkictx
198 );
199 
206  PKIKEYPOLICIES *key_policy
207 );
208 
215  PKIKEYPOLICIES *key_policy
216 );
217 
224  PKIKEYPOLICIES *key_policy,
225  const char *filename
226 );
227 
234  const char *filename,
235  PKIKEYPOLICIES *key_policy
236 );
237 
244  PKIKEYPOLICIES *key_policy,
245  const void *buffer,
246  int buffer_len
247 );
248 
255  void *buffer,
256  int *buffer_len,
257  int buffer_alloc_len,
258  PKIKEYPOLICIES *key_policy
259 );
260 
267  char *name,
268  int name_max,
269  char *id,
270  int id_max,
271  int *algorithm,
272  int *key_bit_len,
273  char *parameter,
274  int parameter_len,
275  PKIKEYPOLICIES *key_policies,
276  int index
277 );
278 
285  int *valid_year,
286  int *valid_month,
287  int *valid_day,
288  int *valid_hour,
289  char *ldap_att,
290  int ldap_att_max,
291  char *extensions,
292  int extensions_max,
293  int *ra_issuance_allowed,
294  PKIKEYPOLICIES *key_policies,
295  int index
296 );
297 
304  PKIKEYPOLICIES *key_policies,
305  const char *name,
306  const char *id,
307  int algorithm,
308  int key_bit_len,
309  const char *parameter
310 );
311 
312 /**********************************************************************/
313 /* 인증서 생성 요청(PKICERTREQS) */
314 /**********************************************************************/
315 
322  PKICERTREQS *pkicertreqs
323 );
324 
331  PKICERTREQS *pkicertreqs
332 );
333 
341  PRIVATEKEY *privatekey,
342  PKICERTREQS *pkicertreqs,
343  PKIKEYPOLICIES *pkikeypolicies,
344  int keypolicy_index,
345  CERTIFICATE *old_cert,
346  PRIVATEKEY *old_key,
347  CERTIFICATE *ca_cert
348 );
349 
357  PRIVATEKEY *privatekey,
358  PKICERTREQS *pkicertreqs,
359  int algorithm,
360  int key_bit_len,
361  char *parameter,
362  char *key_policy_id,
363  CERTIFICATE *old_cert,
364  PRIVATEKEY *old_key_unused,
365  CERTIFICATE *ca_cert,
366  char *inputVal,
367  int inputLen
368 );
369 
378  PRIVATEKEY *privatekey,
379  PKICERTREQS *pkicertreqs,
380  int algorithm,
381  int key_bit_len,
382  char *parameter,
383  char *key_policy_id,
384  CERTIFICATE *old_cert,
385  PRIVATEKEY *old_key_unsued,
386  CERTIFICATE *ca_cert
387 );
388 
399  PKICERTREQS *pkicertreqs,
400  const char *pSubjectName
401 );
402 
409  PKICERTREQS *pkicertreqs,
410  const char *pResidentNumber
411 );
412 
419  char *pResidentNumber,
420  int residentNumber_max,
421  PKICERTREQS *pkicertreqs
422 );
423 
430  PKICERTREQS *pkicertreqs,
431  PRIVATEKEY *privatekey,
432  int index,
433  const char *pIdn,
434  CERTIFICATE *ca_cert
435 );
436 
437 // /// @brief PKICERTREQS의 내용을 해석한다 : CA용 - 미구현
438 // ///
439 // /// @return @ref ISSAC_SUCCESS : 성공
440 // ISSAC_RETURN FUNCCALL
441 // ISSAC_PKICERTREQS_Resolve(
442 // PRIVATEKEY *privatekey, ///<
443 // CERTTEMPLATE *certtemplate, ///<
444 // PKICERTREQS *pkicertreqs, ///<
445 // int index, ///<
446 // CERTIFICATE *ca_cert ///<
447 // );
448 
449 
450 /**********************************************************************/
451 /* 인증서 생성 응답 */
452 /**********************************************************************/
453 
460  PKICERTREPS *pkicertreps
461 );
462 
469  PKICERTREPS *pkicertreps
470 );
471 
472 // /// @brief PKICERTREPS 에 신규 발행된 인증서를 추가 : CA용 - 미구현
473 // ///
474 // /// @return @ref ISSAC_SUCCESS : 성공
475 // WA_SDK_API ISSAC_RETURN FUNCCALL
476 // ISSAC_PKICERTREPS_Add(
477 // PKICERTREPS *pkicertreps, ///<
478 // CERTIFICATE *certificate, ///<
479 // int index ///<
480 // );
481 
489  CERTIFICATE *certificate,
490  char *err_message,
491  int errmsg_max,
492  PKICERTREPS *pkicertreps,
493  int index
494 );
495 
496 
497 /**********************************************************************/
498 /* 인증서 폐지 요청 */
499 /**********************************************************************/
500 
507  PKICERTREVREQS *pkicertreqs
508 );
509 
516  PKICERTREVREQS *pkicertreqs
517 );
518 
525  PKICERTREVREQS *pkicertrevreqs,
526  CERTIFICATE *certificate,
527  int revocation_reason
528 );
529 
530 
531 // /// @brief PKICERTREVREQS의 내용을 획득 : CA용 - 미구현
532 // ///
533 // /// @return @ref ISSAC_SUCCESS : 성공
534 // WA_SDK_API ISSAC_RETURN FUNCCALL
535 // ISSAC_PKICERTREVREQS_Resolve(
536 // char *serial, ///<
537 // int serial_max, ///<
538 // int *revocation_reason, ///<
539 // PKICERTREVREQS *pkicertreps, ///<
540 // int index ///<
541 // );
542 
543 /**********************************************************************/
544 /* 인증서 폐지 응답 */
545 /**********************************************************************/
546 
553  PKICERTREVREPS *pkicertrevreps
554 );
555 
562  PKICERTREVREPS *pkicertrevreps
563 );
564 
565 // /// @brief 폐지한 인증서를 PKICERTREVREPS에 추가 : CA용 - 미구현
566 // ///
567 // /// @return @ref ISSAC_SUCCESS : 성공
568 // WA_SDK_API ISSAC_RETURN FUNCCALL
569 // ISSAC_PKICERTREVREPS_Add(
570 // PKICERTREVREPS *pkicertrevreps, ///<
571 // int status ///<
572 // );
573 
581  int *revocation_status,
582  char *err_str,
583  int err_str_max,
584  PKICERTREVREPS *pkicertreps,
585  int index
586 );
587 
588 
589 /**********************************************************************/
590 /* 인증서 등록 */
591 /**********************************************************************/
592 
601  PKIMESSAGE *pkimsg,
602  PKICONTEXT *pkictx,
603  PKICERTREQS *pkicertreqs,
604  CERTIFICATE *sender_cert,
605  PRIVATEKEY *sender_key,
606  const char *sender_id,
607  const char *sender_authcode,
608  CERTIFICATE *recip_cert
609 );
610 
622  PKICERTREQS *pkicertreqs,
623  PKICONTEXT *pkictx,
624  PKIMESSAGE *pkimsg,
625  CERTIFICATE *recip_cert,
626  CERTIFICATE *sender_cert,
627  char *sender_authcode,
628  time_t nowTime
629 );
630 
639  PKIMESSAGE *pkimsg,
640  PKICONTEXT *pkictx,
641  PKICERTREPS *pkicertreps,
642  CERTIFICATE *sender_cert,
643  PRIVATEKEY *sender_key
644 );
645 
661  PKICERTREPS *pkicertreps,
662  PKIMESSAGE *pkimsg,
663  PKICONTEXT *pkictx,
664  time_t nowTime
665 );
666 
667 
668 /**********************************************************************/
669 /* 인증서 갱신 */
670 /**********************************************************************/
671 
680  PKIMESSAGE *pkimsg,
681  PKICONTEXT *pkictx,
682  PKICERTREQS *pkicertreqs,
683  CERTIFICATE *sender_cert,
684  PRIVATEKEY *sender_key,
685  CERTIFICATE *recip_cert
686 );
687 
699  PKICERTREQS *pkicertreqs,
700  PKICONTEXT *pkictx,
701  PKIMESSAGE *pkimsg,
702  CERTIFICATE *recip_cert,
703  CERTIFICATE *sender_cert,
704  time_t nowTime
705 );
706 
715  PKIMESSAGE *pkimsg,
716  PKICONTEXT *pkictx,
717  PKICERTREPS *pkicertreps,
718  CERTIFICATE *sender_cert,
719  PRIVATEKEY *sender_key
720 );
721 
737  PKICERTREPS *pkicertreps,
738  PKIMESSAGE *pkimsg,
739  PKICONTEXT *pkictx,
740  time_t nowTime
741 );
742 
743 
744 /**********************************************************************/
745 /* 인증서 폐지 */
746 /**********************************************************************/
747 
756  PKIMESSAGE *pkimsg,
757  PKICONTEXT *pkictx,
758  PKICERTREVREQS *pkicertrevreqs,
759  CERTIFICATE *sender_cert,
760  PRIVATEKEY *sender_key,
761  CERTIFICATE *recip_cert
762 );
763 
774  PKICERTREVREQS *pkicertrevreqs,
775  PKIMESSAGE *pkimsg,
776  PKICONTEXT *pkictx,
777  CERTIFICATE *recip_cert,
778  CERTIFICATE *sender_cert,
779  time_t nowTime
780 );
781 
790  PKIMESSAGE *pkimsg,
791  PKICONTEXT *pkictx,
792  PKICERTREVREPS *pkicerrevtreps,
793  CERTIFICATE *sender_cert,
794  PRIVATEKEY *sender_key
795 );
796 
811  PKICERTREVREPS *pkicertrevreps,
812  PKIMESSAGE *pkimsg,
813  PKICONTEXT *pkictx,
814  time_t nowTime
815 );
816 
817 /**********************************************************************/
818 /* 공용 CONFIRM message */
819 /**********************************************************************/
820 
828  PKIMESSAGE *pkimsg,
829  PKICONTEXT *pkictx
830 );
831 
846  PKIMESSAGE *pkimsg,
847  PKICONTEXT *pkictx,
848  CERTIFICATE *recip_cert,
849  CERTIFICATE *sender_cert,
850  char *sender_authcode,
851  time_t nowTime
852 );
853 
854 /**********************************************************************/
855 /* 공용 ERROR message */
856 /**********************************************************************/
857 
864  PKIMESSAGE *pkimsg,
865  PKICONTEXT *pkictx,
866  int status,
867  const char *status_msg,
868  int error_code,
869  const char *error_msg,
870  CERTIFICATE *sender_cert,
871  PRIVATEKEY *sender_key
872 );
873 
880  int *status,
881  char *status_msg,
882  int status_msg_max,
883  int *err_code,
884  char *err_msg,
885  int err_msg_max,
886  PKIMESSAGE *pkimsg,
887  PKICONTEXT *pkictx,
888  time_t nowTime
889 );
890 
891 
892 
893 /**********************************************************************/
894 /* 키 정책관련 message */
895 /**********************************************************************/
896 
897 /********************************************************************/
898 /* PKIKEYPOLICIES message */
899 
906  PKIMESSAGE *pkimsg,
907  PKICONTEXT *pkictx,
908  char *user_id,
909  char *user_authcode,
910  CERTIFICATE *user_cert,
911  PRIVATEKEY *user_key,
912  int rauser_flag,
913  CERTIFICATE *recip_cert,
914  CERTIFICATE *ca_cert
915 );
916 
923  char *requester_id,
924  int requester_id_max,
925  PKICONTEXT *pkictx,
926  PKIMESSAGE *pkimsg,
927  CERTIFICATE *recip_cert,
928  CERTIFICATE *sender_cert,
929  char *sender_authcode
930 );
931 
938  PKIMESSAGE *pkimsg,
939  PKICONTEXT *pkictx,
940  PKIKEYPOLICIES *key_policies,
941  CERTIFICATE *sender_cert,
942  PRIVATEKEY *sender_key
943 );
944 
951  PKIKEYPOLICIES *key_policies,
952  PKIMESSAGE *pkimsg,
953  PKICONTEXT *pkictx
954 );
955 
956 
957 /**********************************************************************/
958 /* Network 처리 */
959 /**********************************************************************/
960 
967 
974  const char *ip,
975  int port
976 );
977 
986  const char *ip,
987  int port,
988  SOCKET *pSocket
989 );
990 
996  int port
997 );
998 
1004  SOCKET sock
1005 );
1006 
1012 WA_SDK_API void FUNCCALL
1014  SOCKET sock
1015 );
1016 
1024  SOCKET sock,
1025  PKIMESSAGE *pPKIMessage
1026 );
1027 
1035  SOCKET sock,
1036  const char *pszErrorMsg
1037 );
1038 
1046  PKIMESSAGE *pPKIMessage,
1047  SOCKET sock,
1048  char *pszErrorMsgBuf,
1049  int nMaxBufLen
1050 );
1051 
1052 
1053 /**********************************************************************/
1054 /* 공용 기타 */
1055 /**********************************************************************/
1056 
1060 WA_SDK_API char *FUNCCALL
1062  int *pMajorVersion,
1063  int *pMinorVersion
1064 );
1065 
1067 
1068 
1069 #endif /* _issacapi_cmp_h */
1070 
unsigned int ISSAC_RETURN
ISSAC-API 실행 결과 [ ISSACAPI_BASIC_RETURN, ISSACAPI_ERRORS, ISSAC_LICENSE_ERR ]
Definition: issacapi_bs_definitions.h:32
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Delete(PKICERTREPS *pkicertreps)
PKICERTREPS 구조체를 삭제
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Delete(PKICERTREVREQS *pkicertreqs)
PKICERTREVREQS 구조체를 삭제
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 SOCKET FUNCCALL ISSAC_SOCKET_Connect(const char *ip, int port)
주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다.
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 char *FUNCCALL GetVersionString(int *pMajorVersion, int *pMinorVersion)
CMP 모듈의 버전을 출력한다.
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_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_ResolveRevocationRep(PKICERTREVREPS *pkicertrevreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
CA/RA로부터 받은 RP 메시지를 해석한다.
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_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_PKIMESSAGE_GetSenderId(char *sender_id, int sender_id_max, PKIMESSAGE *pkimsg)
수신한 PKIMESSAGE에서 송신자의 id를 구해냄
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_PKIMESSAGE_Send(SOCKET sock, PKIMESSAGE *pPKIMessage)
PKIMESSAGE를 전송한다. RFC2510(March 1999) 5.2 참조
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Delete(PKICERTREVREPS *pkicertrevreps)
PKICERTREPS 구조체를 삭제
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_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_PKICERTREQS_SetSubject(PKICERTREQS *pkicertreqs, const char *pSubjectName)
PKICERTREQS의 인증서 생성 요청에 subject DN 이름을 추가한다. (RA용)
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Create(PKIKEYPOLICIES *key_policy)
PKIKEYPOLICIES type을 생성
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREQS_SetResidentNumber(PKICERTREQS *pkicertreqs, const char *pResidentNumber)
PKICERTREQS의 인증서 생성 요청에 사용자의 주민등록번호를 추가한다. (RA용)
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Delete(PKIMESSAGE *pkimsg)
PKIMESSAGE 에 할당된 메모리를 해제한다.
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_PKIKEYPOLICIES_Write_File(const char *filename, PKIKEYPOLICIES *key_policy)
PKIKEYPOLICIES type을 파일에 저장
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREPS_Create(PKICERTREVREPS *pkicertrevreps)
PKICERTREPS 구조체를 생성
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_PKIMESSAGE_GetSenderName(char *sender_name, int sender_name_max, PKIMESSAGE *pkimsg)
수신한 PKIMESSAGE에서 송신자의 DN을 구해냄
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Init()
Network를 초기화한다(Win32)
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_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_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_PKIKEYPOLICIES_Read_File(PKIKEYPOLICIES *key_policy, const char *filename)
PKIKEYPOLICIES type을 파일에서 읽어들임
ISSACAPI_PKIMESSAGE_TYPE
Definition: issacapi_cmp_v3.h:86
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREPS_Create(PKICERTREPS *pkicertreps)
PKICERTREPS 구조체를 생성
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_PKICERTREVREQS_Add(PKICERTREVREQS *pkicertrevreqs, CERTIFICATE *certificate, int revocation_reason)
폐지할 인증서를 PKICERTREVREQS에 추가
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_Create(PKICERTREQS *pkicertreqs)
PKICERTREQS 구조체를 생성
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SOCKET_Connect2(const char *ip, int port, SOCKET *pSocket)
주어진 ip와 port값을 이용하여 socket을 생성하여 서버와 연결한 뒤, 해당 socket값을 리턴한다.
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_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_PKICERTREQS_SetEncryptedVID(PKICERTREQS *pkicertreqs, PRIVATEKEY *privatekey, int index, const char *pIdn, CERTIFICATE *ca_cert)
사용자의 비공개키에 160bit 길이의 난수를 추가하고 이 난수를 사용하여 PKICERTREQS의 인증서 생성 요청에 사용자의 VID 정보를 추가한다.
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_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_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_PKICERTREVREPS_Resolve(int *revocation_status, char *err_str, int err_str_max, PKICERTREVREPS *pkicertreps, int index)
PKICERTREVREPS의 내용을 획득
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 ISSAC_RETURN FUNCCALL ISSAC_CMP_MakeConfirm(PKIMESSAGE *pkimsg, PKICONTEXT *pkictx)
CA/RA에 전송할 CONFIRM 메시지를 생성한다.
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIMESSAGE_Create(PKIMESSAGE *pkimsg)
PKIMESSAGE 구조체를 초기화한다.
WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_CreateAcceptSock(int port)
ISSAC_SOCKET_Accept() 에서 사용할 SOCKET을 생성한다.
ISSACAPI_CP_RETURN
Definition: issacapi_cmp_v3.h:76
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_ResolveInitialRep(PKICERTREPS *pkicertreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
CA/RA로부터 받은 IP 메시지를 해석한다.
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICERTREVREQS_Create(PKICERTREVREQS *pkicertreqs)
PKICERTREVREQS 구조체를 생성
ISSAC_API_REVOCATION_REASON
Definition: issacapi_cmp_v3.h:117
WA_SDK_API SOCKET FUNCCALL ISSAC_SOCKET_Accept(SOCKET sock)
주어진 port에서 accept
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_PKIKEYPOLICIES_Delete(PKIKEYPOLICIES *key_policy)
PKIKEYPOLICIES type을 메모리에서 삭제
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_PKICERTREQS_Delete(PKICERTREQS *pkicertreqs)
PKICERTREQS 구조체를 삭제
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKICONTEXT_Delete(PKICONTEXT *pkictx)
PKICONTEXT 구조체를 삭제
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_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_PKICONTEXT_Create(PKICONTEXT *pkictx)
PKICONTEXT 구조체를 생성
ISSAC_CMP_PKISTATUS
Definition: issacapi_cmp_v3.h:110
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMP_ResolveKeyUpdateRep(PKICERTREPS *pkicertreps, PKIMESSAGE *pkimsg, PKICONTEXT *pkictx, time_t nowTime)
CA/RA로부터 받은 KUP 메시지를 해석한다.
WA_SDK_API void FUNCCALL ISSAC_SOCKET_Close(SOCKET sock)
ISSAC_SOCKET_Connect()에 의해 생성된 연결을 끊는다.
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PKIKEYPOLICIES_Write_Memory(void *buffer, int *buffer_len, int buffer_alloc_len, PKIKEYPOLICIES *key_policy)
PKIKEYPOLICIES type을 메모리에 저장
@ ISSACAPI_PKIMESSAGE_CR
Definition: issacapi_cmp_v3.h:89
@ ISSACAPI_PKIMESSAGE_RANN
Definition: issacapi_cmp_v3.h:101
@ ISSACAPI_PKIMESSAGE_RR
Definition: issacapi_cmp_v3.h:95
@ ISSACAPI_PKIMESSAGE_CP
Definition: issacapi_cmp_v3.h:90
@ ISSACAPI_PKIMESSAGE_IR
Definition: issacapi_cmp_v3.h:87
@ ISSACAPI_PKIMESSAGE_KUP
Definition: issacapi_cmp_v3.h:92
@ ISSACAPI_PKIMESSAGE_KRP
Definition: issacapi_cmp_v3.h:94
@ ISSACAPI_PKIMESSAGE_KUR
Definition: issacapi_cmp_v3.h:91
@ ISSACAPI_PKIMESSAGE_CKUANN
Definition: issacapi_cmp_v3.h:99
@ ISSACAPI_PKIMESSAGE_KRR
Definition: issacapi_cmp_v3.h:93
@ ISSACAPI_PKIMESSAGE_ERROR
Definition: issacapi_cmp_v3.h:106
@ ISSACAPI_PKIMESSAGE_IP
Definition: issacapi_cmp_v3.h:88
@ ISSACAPI_PKIMESSAGE_RP
Definition: issacapi_cmp_v3.h:96
@ ISSACAPI_PKIMESSAGE_CCP
Definition: issacapi_cmp_v3.h:98
@ ISSACAPI_PKIMESSAGE_GENP
Definition: issacapi_cmp_v3.h:105
@ ISSACAPI_PKIMESSAGE_CANN
Definition: issacapi_cmp_v3.h:100
@ ISSACAPI_PKIMESSAGE_CCR
Definition: issacapi_cmp_v3.h:97
@ ISSACAPI_PKIMESSAGE_CONF
Definition: issacapi_cmp_v3.h:103
@ ISSACAPI_PKIMESSAGE_GENM
Definition: issacapi_cmp_v3.h:104
@ ISSACAPI_PKIMESSAGE_CRLANN
Definition: issacapi_cmp_v3.h:102
@ ER_CP_TOO_SMALL_MSG_BUF
입력 message 버퍼의 길이가 너무 작음
Definition: issacapi_cmp_v3.h:79
@ ER_CP_INVALID_MSG_SIG
message의 서명이 올바르지 않음
Definition: issacapi_cmp_v3.h:82
@ ER_CP_INVALID_USER_DN
해석할 수 없는 사용자 DN
Definition: issacapi_cmp_v3.h:77
@ ER_CP_INVALID_AUTH_CERT
올바르지 않은 인증기관 인증서
Definition: issacapi_cmp_v3.h:80
@ ER_CP_CANNOT_DECODE_MSG
message를 decoding 할 수 없음
Definition: issacapi_cmp_v3.h:81
@ ER_CP_INVALID_USER_ID
해석할 수 없는 사용자 ID
Definition: issacapi_cmp_v3.h:78
@ ISSAC_API_REVOC_REASON_unused
Definition: issacapi_cmp_v3.h:118
@ ISSAC_API_REVOC_REASON_certificateHold
Definition: issacapi_cmp_v3.h:124
@ ISSAC_API_REVOC_REASON_cessationOfOperation
Definition: issacapi_cmp_v3.h:123
@ ISSAC_API_REVOC_REASON_superseded
Definition: issacapi_cmp_v3.h:122
@ ISSAC_API_REVOC_REASON_cACompromise
Definition: issacapi_cmp_v3.h:120
@ ISSAC_API_REVOC_REASON_affiliationChanged
Definition: issacapi_cmp_v3.h:121
@ ISSAC_API_REVOC_REASON_keyCompromise
Definition: issacapi_cmp_v3.h:119
@ ISSACAPI_CMP_PKISTATUS_ACCEPTED
Definition: issacapi_cmp_v3.h:111
@ ISSACAPI_CMP_PKISTATUS_REJECTION
Definition: issacapi_cmp_v3.h:113
@ ISSACAPI_CMP_PKISTATUS_GRANTEDWITHMODS
Definition: issacapi_cmp_v3.h:112
#define SOCKET
Definition: issacapi_cmp_v3.h:21
인증서에 대한 컨텍스트
Definition: issacapi_bs_definitions.h:106
인증서 생성 응답들을 갖고 있는 구조체
Definition: issacapi_cmp_v3.h:58
int size
가지고 있는 인증서의 갯수
Definition: issacapi_cmp_v3.h:59
void * certreps
Definition: issacapi_cmp_v3.h:60
인증서 생성요청들을 담고있는 구조체
Definition: issacapi_cmp_v3.h:52
void * certreqs
Definition: issacapi_cmp_v3.h:54
int size
Definition: issacapi_cmp_v3.h:53
인증서 폐지 응답들을 갖고 있는 구조체
Definition: issacapi_cmp_v3.h:70
int size
가지고 있는 폐지 응답의 갯수
Definition: issacapi_cmp_v3.h:71
void * certrevreps
Definition: issacapi_cmp_v3.h:72
인증서 폐지요청들을 담고있는 구조체
Definition: issacapi_cmp_v3.h:64
int size
Definition: issacapi_cmp_v3.h:65
void * certrevreqs
Definition: issacapi_cmp_v3.h:66
PKIMessage 생성시에 각 함수들이 공유하여 사용하는 자료들을 모은 구조체
Definition: issacapi_cmp_v3.h:41
void * context
Definition: issacapi_cmp_v3.h:42
인증서 키생성을 위한 정책을 저장하는 구조체
Definition: issacapi_cmp_v3.h:46
int size
키생성 정책의 갯수
Definition: issacapi_cmp_v3.h:47
void * policies
Definition: issacapi_cmp_v3.h:48
PKIMessage에 대한 컨텍스트
Definition: issacapi_cmp_v3.h:36
void * message
Definition: issacapi_cmp_v3.h:37
PKCS#8 형식의 개인키에 대한 컨텍스트
Definition: issacapi_bs_definitions.h:152
#define FUNCCALL
Definition: wasdk_public.h:9
#define WA_SDK_API
Definition: wasdk_public.h:27