WA-SDK  3.0.4.0
WA-SDK
issacapi_ac.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 
8  The copyright notice above does not evidence any actual or intended
9  publication of such source code.
10 
11  Filename : issac_ac.h
12 */
13 
14 #ifndef _issac_ac_h
15 #define _issac_ac_h
16 
17 #include "issacapi_ac_attcert.h"
18 
23 
25 
26 #endif /* _issac_ac.h */
27 
28 //테스트 코드이므로 리턴값 체크 코드는 없음
29 /*
30 int main(int argc, char **argv) {
31  CERTIFICATE cert;
32  PRIVATEKEY priKey;
33  ATTCERT ac;
34  ATTSROLES roles;
35  time_t now;
36 
37  //0. 초기화
38  ISSAC_CERTIFICATE_Create(&cert);
39  ISSAC_PRIVATEKEY_Create(&prikey);
40  ISSAC_ATTSROLES_Create(&roles);
41  ISSAC_ATTCERT_Create(&ac);
42 
43  //1. 현재 시각
44  time(&now);
45 
46  //2. 발급자 인증서 및 비공개키
47  ISSAC_CERTIFICATE_Read_File( &cert, "a_sig.cer" ) ;
48  ISSAC_PRIVATEKEY_Read_File(&prikey, "a_sig.key", "abcdefg" );
49 
50  //3. RAAC내용. 즉, 역할 목록
51  ISSAC_ATTSROLES_Add(&roles, "role_1234");
52  ISSAC_ATTSROLES_Add(&roles, "role_1235");
53  ISSAC_ATTSROLES_Add(&roles, "role_1236");
54  ISSAC_ATTSROLES_Add(&roles, "role_1237");
55 
56  //4. RAAC 생성
57  ISSAC_ATTCERT_Gen(&ac, "holdername", "issuername", now, now + 24 * 3600, &roles, &prikey, null, SHA1, &cert);
58 
59  //5. RAAC 서명 검증
60  if ( ISSAC_SUCCESS == ISSAC_ATTCERT_VerifySign(&ac, &cert, null) ) {
61  printf("서명 검증 성공\n");
62  } else {
63  printf("서명 검증 실패\n");
64  }
65 
66  //6. RAAC 유효 기간 검증
67  if ( ISSAC_SUCCESS == ISSAC_ATTCERT_VerifyTime(&ac, &now) ) {
68  printf("유효 기간 검증 성공\n");
69  } else {
70  printf("유효 기간 검증 실패\n");
71  }
72 
73  //7. RAAC 역할 목록 얻기
74  ISSAC_ATTSROLES_Delete(&roles);
75  ISSAC_ATTSROLES_Create(&roles);
76  ISSAC_ATTCERT_GetATTSROLES(&roles, &cert);
77  {
78  int cnt = 0;
79  char role[100];
80  ISSAC_ATTSROLES_GetCount(&cnt, &roles);
81  for ( int i = 0; i < cnt; i++ ) {
82  ISSAC_ATTROLE_Read_ATTSROLES(role, 100, roles, i);
83  printf("ROLE %d : '%s'\n", (i + 1), role);
84  }
85  }
86 
87  //final 정리.
88  ISSAC_ATTCERT_Delete(&ac);
89  ISSAC_ATTSROLES_Delete(&roles);
90  ISSAC_CERTIFICATE_Delete(&cert);
91  ISSAC_PRIVATEKEY_Create(&prikey);
92 
93  return 0;
94 }
95 */
96