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

LDAP (Lightweight Directory Access Protocol) 더 자세히 ...

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

데이터 구조

struct  DLCONTEXT
 디렉토리 서버에 연결하기 위한 정보가 포함된 구조체 더 자세히 ...
 

매크로

#define LDAP_ATTRIBUTE_USER_CERT   "userCertificate"
 
#define LDAP_ATTRIBUTE_USER_CERT_BIN   "userCertificate;binary"
 
#define LDAP_ATTRIBUTE_CA_CERT   "cACertificate"
 
#define LDAP_ATTRIBUTE_CA_CERT_BIN   "cACertificate;binary"
 
#define LDAP_ATTRIBUTE_CRL   "certificateRevocationList"
 
#define LDAP_ATTRIBUTE_CRL_BIN   "certificateRevocationList;binary"
 
#define LDAP_ATTRIBUTE_ARL   "authorityRevocationList"
 
#define LDAP_ATTRIBUTE_ARL_BIN   "authorityRevocationList;binary"
 
#define LDAP_ATTRIBUTE_DCRL   "deltaRevocationList"
 
#define LDAP_ATTRIBUTE_DCRL_BIN   "deltaRevocationList;binary"
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Create (DLCONTEXT *info)
 DLCONTEXT 구조체를 초기화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Delete (DLCONTEXT *info)
 DLCONTEXT 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Set (DLCONTEXT *info, const char *ip, int port, const char *basedn)
 DLCONTEXT 에 디렉토리 서버 접근을 위한 정보를 설정한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_SetWithUserInfo (DLCONTEXT *info, const char *ip, int port, const char *basedn, const char *bind_userdn, const char *bind_userpasswd)
 DLCONTEXT 에 디렉토리 서버 접근을 위한 정보를 설정한다. (인증정보 포함) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadEntryDn (char *dn, const char *filter, DLCONTEXT *info)
 특정 Entry의 DN을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATE (CERTIFICATE **cert_array, int *cert_num, const char *dn, const char *attribute, DLCONTEXT *info)
 디렉토리 서버에서 인증서를 받아온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_DeleteCERTIFICATEarray (CERTIFICATE **cert_array, int cert_num)
 ISSAC_DL_ReadCERTIFICATE() 로 받아온 인증서의 메모리를 반환한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATEREVLIST (CERTIFICATEREVLIST *crl, const char *dn, const char *attribute, DLCONTEXT *info)
 디렉토리 서버에서 CRL을 받아온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATEREVLIST_Timeout (CERTIFICATEREVLIST *crl, const char *dn, const char *attribute, DLCONTEXT *info, long timeoutsec)
 디렉토리 서버에서 CRL을 받아온다. (응답 대기시간 설정 가능) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCDPCERTIFICATEREVLIST (CERTIFICATEREVLIST *crl, CERTIFICATE *cdpcert, const char *attribute)
 인증서의 CDP 정보를 활용하여 디렉토리 서버에서 CRL을 받아온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCDPCERTIFICATEREVLIST_Timeout (CERTIFICATEREVLIST *crl, CERTIFICATE *cdpcert, const char *attribute, long timeoutsec)
 인증서의 CDP 정보를 활용하여 디렉토리 서버에서 CRL을 받아온다. (응답 대기시간 설정 가능) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATETRUSTLIST (CERTIFICATETRUSTLIST *ctl, const char *dn, const char *attribute, DLCONTEXT *info)
 CTL(신뢰하는 최상위 인증기관 목록)을 받아온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadContext (char *value, const char *dn, const char *attribute, DLCONTEXT *info)
 디렉토리 서버에서 데이터를 받아온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ResolveLdapAddress (const char *pszURL, char *cpIp, int *nPort, char *dn, char *ldAttribute)
 디렉토리 서버 주소를 분석하여 각각의 값을 추출한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_FreeMemory (void **buffer)
 WA-SDK 에서 할당된 메모리를 해제하고 해당 포인터를 NULL로 리셋한다. 더 자세히 ...
 

상세한 설명

LDAP (Lightweight Directory Access Protocol)

매크로 문서화

◆ LDAP_ATTRIBUTE_USER_CERT

#define LDAP_ATTRIBUTE_USER_CERT   "userCertificate"

◆ LDAP_ATTRIBUTE_USER_CERT_BIN

#define LDAP_ATTRIBUTE_USER_CERT_BIN   "userCertificate;binary"

◆ LDAP_ATTRIBUTE_CA_CERT

#define LDAP_ATTRIBUTE_CA_CERT   "cACertificate"

◆ LDAP_ATTRIBUTE_CA_CERT_BIN

#define LDAP_ATTRIBUTE_CA_CERT_BIN   "cACertificate;binary"

◆ LDAP_ATTRIBUTE_CRL

#define LDAP_ATTRIBUTE_CRL   "certificateRevocationList"

◆ LDAP_ATTRIBUTE_CRL_BIN

#define LDAP_ATTRIBUTE_CRL_BIN   "certificateRevocationList;binary"

◆ LDAP_ATTRIBUTE_ARL

#define LDAP_ATTRIBUTE_ARL   "authorityRevocationList"

◆ LDAP_ATTRIBUTE_ARL_BIN

#define LDAP_ATTRIBUTE_ARL_BIN   "authorityRevocationList;binary"

◆ LDAP_ATTRIBUTE_DCRL

#define LDAP_ATTRIBUTE_DCRL   "deltaRevocationList"

◆ LDAP_ATTRIBUTE_DCRL_BIN

#define LDAP_ATTRIBUTE_DCRL_BIN   "deltaRevocationList;binary"

함수 문서화

◆ ISSAC_DLCONTEXT_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Create ( DLCONTEXT info)

DLCONTEXT 구조체를 초기화한다.

주의
사용 후 반드시 ISSAC_DLCONTEXT_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
info[IN,OUT] 초기화 할 DLCONTEXT
예제
issacapi/dl/sample_dl_arl.c, issacapi/dl/sample_dl_certificate.c, issacapi/dl/sample_dl_crl.c, issacapi/dl/sample_dl_crl_by_cdp.c, issacapi/usr/sample_usr_path_validation_ex.c.

◆ ISSAC_DLCONTEXT_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Delete ( DLCONTEXT info)

◆ ISSAC_DLCONTEXT_Set()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_Set ( DLCONTEXT info,
const char *  ip,
int  port,
const char *  basedn 
)

DLCONTEXT 에 디렉토리 서버 접근을 위한 정보를 설정한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
info[IN,OUT] ISSAC_DLCONTEXT_Create() 를 호출하여 초기화 된 DLCONTEXT
ip[IN] 디렉토리 서버 IP
port[IN] 디렉토리 서버 포트 (일반적으로 389)
basedn[IN] Base DN
예제
issacapi/dl/sample_dl_arl.c, issacapi/dl/sample_dl_certificate.c, issacapi/dl/sample_dl_crl.c.

◆ ISSAC_DLCONTEXT_SetWithUserInfo()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DLCONTEXT_SetWithUserInfo ( DLCONTEXT info,
const char *  ip,
int  port,
const char *  basedn,
const char *  bind_userdn,
const char *  bind_userpasswd 
)

DLCONTEXT 에 디렉토리 서버 접근을 위한 정보를 설정한다. (인증정보 포함)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
info[IN,OUT] ISSAC_DLCONTEXT_Create() 를 호출하여 초기화 된 DLCONTEXT
ip[IN] 디렉토리 서버 IP
port[IN] 디렉토리 서버 포트 (일반적으로 389)
basedn[IN] Base DN
bind_userdn[IN] 인증을 위한 사용자 DN
bind_userpasswd[IN] 인증을 위한 사용자 비밀번호

◆ ISSAC_DL_ReadEntryDn()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadEntryDn ( char *  dn,
const char *  filter,
DLCONTEXT info 
)

특정 Entry의 DN을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : 입력한 Base DN 과 filter 를 만족하는 Entry를 찾을 수 없음
매개변수
dn[OUT] filter 조건에 만족하는 Entry 의 첫번째 DN
filter[IN] Entry 검색을 위한 filter
info[IN] 디렉토리 서버 정보

◆ ISSAC_DL_ReadCERTIFICATE()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATE ( CERTIFICATE **  cert_array,
int *  cert_num,
const char *  dn,
const char *  attribute,
DLCONTEXT info 
)

디렉토리 서버에서 인증서를 받아온다.

Remarks
Entry의 인증서는 여러개일 수 있기 때문에 배열로 가져온다. (signCert, kmCert, ...)
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
매개변수
cert_array[OUT] 받아온 인증서의 포인터 배열
cert_num[OUT] 받아온 인증서의 개수
dn[IN] 인증서 DN
attribute[IN] Entry Attribute
info[IN] 디렉토리 서버 정보
예제
issacapi/dl/sample_dl_certificate.c.

◆ ISSAC_DL_DeleteCERTIFICATEarray()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_DeleteCERTIFICATEarray ( CERTIFICATE **  cert_array,
int  cert_num 
)

ISSAC_DL_ReadCERTIFICATE() 로 받아온 인증서의 메모리를 반환한다.

반환값
ISSAC_SUCCESS : 성공
매개변수
cert_array[IN,OUT] ISSAC_DL_ReadCERTIFICATE() 로 받아온 인증서 목록
cert_num[IN] ISSAC_DL_ReadCERTIFICATE() 로 받아온 인증서의 개수
예제
issacapi/dl/sample_dl_certificate.c.

◆ ISSAC_DL_ReadCERTIFICATEREVLIST()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATEREVLIST ( CERTIFICATEREVLIST crl,
const char *  dn,
const char *  attribute,
DLCONTEXT info 
)

디렉토리 서버에서 CRL을 받아온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_DL_LDAP_INVALID_DATA_FORMAT : 받은 파일이 CRL의 형식이 아님
매개변수
crl[IN,OUT] ISSAC_CERTIFICATEREVLIST_Create() 를 호출하여 초기화 된 CERTIFICATEREVLIST
dn[IN] CRL DN
attribute[IN] Entry Attribute
info[IN] 디렉토리 서버 정보

◆ ISSAC_DL_ReadCERTIFICATEREVLIST_Timeout()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATEREVLIST_Timeout ( CERTIFICATEREVLIST crl,
const char *  dn,
const char *  attribute,
DLCONTEXT info,
long  timeoutsec 
)

디렉토리 서버에서 CRL을 받아온다. (응답 대기시간 설정 가능)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 연결 또는 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_DL_LDAP_INVALID_DATA_FORMAT : 받은 파일이 CRL의 형식이 아님
매개변수
crl[IN,OUT] ISSAC_CERTIFICATEREVLIST_Create() 를 호출하여 초기화 된 CERTIFICATEREVLIST
dn[IN] CRL DN
attribute[IN] Entry Attribute
info[IN] 디렉토리 서버 정보
timeoutsec[IN] 응답 대기시간 (초)
예제
issacapi/dl/sample_dl_arl.c, issacapi/dl/sample_dl_crl.c.

◆ ISSAC_DL_ReadCDPCERTIFICATEREVLIST()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCDPCERTIFICATEREVLIST ( CERTIFICATEREVLIST crl,
CERTIFICATE cdpcert,
const char *  attribute 
)

인증서의 CDP 정보를 활용하여 디렉토리 서버에서 CRL을 받아온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_USR_CDP_NOT_EXIST : 인증서에 CDP 정보가 없음
ER_USR_CDP_PROTOCOL_NOT_SUPPORTED : 지원하지 않는 CDP 프로토콜 (ldap:// 또는 http:// 지원)
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 연결 또는 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_DL_LDAP_INVALID_DATA_FORMAT : 받은 파일이 CRL의 형식이 아님
그 외 : HTTP 관련 오류
매개변수
crl[IN,OUT] ISSAC_CERTIFICATEREVLIST_Create() 를 호출하여 초기화 된 CERTIFICATEREVLIST
cdpcert[IN] CDP 가 포함된 검증대상 인증서
attribute[IN] Entry Attribute

◆ ISSAC_DL_ReadCDPCERTIFICATEREVLIST_Timeout()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCDPCERTIFICATEREVLIST_Timeout ( CERTIFICATEREVLIST crl,
CERTIFICATE cdpcert,
const char *  attribute,
long  timeoutsec 
)

인증서의 CDP 정보를 활용하여 디렉토리 서버에서 CRL을 받아온다. (응답 대기시간 설정 가능)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_USR_CDP_NOT_EXIST : 인증서에 CDP 정보가 없음
ER_USR_CDP_PROTOCOL_NOT_SUPPORTED : 지원하지 않는 CDP 프로토콜 (ldap:// 또는 http:// 지원)
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 연결 또는 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_DL_LDAP_INVALID_DATA_FORMAT : 받은 파일이 CRL의 형식이 아님
그 외 : HTTP 관련 오류
매개변수
crl[IN,OUT] ISSAC_CERTIFICATEREVLIST_Create() 를 호출하여 초기화 된 CERTIFICATEREVLIST
cdpcert[IN] CDP 가 포함된 검증대상 인증서
attribute[IN] Entry Attribute
timeoutsec[IN] 응답 대기시간 (초)
예제
issacapi/bs/sample_bs_crl.c, issacapi/dl/sample_dl_crl_by_cdp.c.

◆ ISSAC_DL_ReadCERTIFICATETRUSTLIST()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadCERTIFICATETRUSTLIST ( CERTIFICATETRUSTLIST ctl,
const char *  dn,
const char *  attribute,
DLCONTEXT info 
)

CTL(신뢰하는 최상위 인증기관 목록)을 받아온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
ER_DL_LDAP_INVALID_DATA_FORMAT : 받은 파일의 CTL의 형식이 아님
매개변수
ctl[IN,OUT] ISSAC_CERTIFICATETRUSTLIST_Create() 를 호출하여 초기화 된 CERTIFICATETRUSTLIST
dn[IN] CTL DN
attribute[IN] Entry Attribute
info[IN] 디렉토리 서버 정보

◆ ISSAC_DL_ReadContext()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ReadContext ( char *  value,
const char *  dn,
const char *  attribute,
DLCONTEXT info 
)

디렉토리 서버에서 데이터를 받아온다.

Remarks
문자열 데이터만 가능하며, 여러개일 경우 문자열을 붙이는 방식이다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_DL_LDAP_CANNOT_INITIALIZE_STRUCT : 해당 IP와 포트로 LDAP 초기화 실패
ER_DL_LDAP_CANNOT_CONNECT_TO_SERVER : 디렉토리 서버 인증(bind) 실패
ER_DL_LDAP_CANNOT_FIND_ENTRY : Entry를 찾을 수 없음
ER_DL_LDAP_CANNOT_FIND_ATTRIBUTE : Entry는 찾았지만 입력한 Attribute를 찾을 수 없음
매개변수
value[OUT] 받을 데이터의 버퍼 (문자열)
dn[IN] Entry DN
attribute[IN] Entry Attribute
info[IN] 디렉토리 서버 정보

◆ ISSAC_DL_ResolveLdapAddress()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_ResolveLdapAddress ( const char *  pszURL,
char *  cpIp,
int *  nPort,
char *  dn,
char *  ldAttribute 
)

디렉토리 서버 주소를 분석하여 각각의 값을 추출한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_USR_CDP_INVALID_LDAP_ADDRESS : 잘못된 형식의 디렉토리 서버 주소
매개변수
pszURL[IN] 디렉토리 서버 주소
cpIp[OUT] 디렉토리 서버의 호스트명 (IP)
nPort[OUT] 디렉토리 서버의 포트 번호
dn[OUT] 주소가 가르키는 Entry의 DN
ldAttribute[OUT] 주소가 가르키는 Entry의 Attribute

◆ ISSAC_DL_FreeMemory()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_DL_FreeMemory ( void **  buffer)

WA-SDK 에서 할당된 메모리를 해제하고 해당 포인터를 NULL로 리셋한다.

반환값
ISSAC_SUCCESS : 성공
매개변수
buffer[IN,OUT] 해제할 메모리의 포인터를 가진 변수의 주소