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

키합의 (또는 키분배) 더 자세히 ...

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

데이터 구조

struct  KACONTEXT
 키합의 컨텍스트 더 자세히 ...
 

열거형 타입

enum  KEX_type { KEX_DH , KEX_DH_X9_42 , KEX_ECDH , KEX_ECCDH }
 키합의 종류 더 자세히 ...
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Create (KACONTEXT *kacontext)
 KACONTEXT 구조체를 초기화한다. (KEDH) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_CreateOnly (KACONTEXT *kacontext, KEX_type type)
 KACONTEXT 구조체를 초기화한다. (키합의 종류 지정) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Create_Ex (KACONTEXT *kacontext, KEX_type type)
 KACONTEXT 구조체를 초기화한다. (키합의 종류에 따라 임의의 기본값 설정) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Delete (KACONTEXT *kacontext)
 KACONTEXT 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_Initialize (void *sessioninfo, int *sessioninfo_len, int sessioninfo_alloc_len, KACONTEXT *kacontext)
 자신의 세션정보를 생성하고, 상대방에게 전달할 세션정보를 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_Finalize (KACONTEXT *kacontext, void *sessioninfo, int sessioninfo_len)
 상대방의 세션정보를 조합하여 키합의를 마무리한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_GetSessionKey (void *key, int key_len, KACONTEXT *kacontext)
 키합의가 완료된 KACONTEXT 를 통해 세션키를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_ECDH (KACONTEXT *kacontext, unsigned int curve_id)
 ECDH 에 사용할 커브를 설정한다. (호출하지 않으면 ISSACAPI_EC_CURVE_P256) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetKDF (KACONTEXT *kacontext, int unused, int hashAlg)
 키유도 함수에 필요한 키길이와 해시 알고리즘을 설정한다. (호출하지 않으면 32, ISSACAPI_SHA256) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PrivateKey (KACONTEXT *kacontext, PRIVATEKEY *priKey)
 ECDH 에 사용할 개인키를 설정한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PeerCertificate (KACONTEXT *kacontext, CERTIFICATE *peerCert)
 ECDH 에 사용할 상대방의 공개키를 인증서를 이용하여 설정한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PeerPublicKey (KACONTEXT *kacontext, PUBLICKEY *peerPubKey)
 ECDH 에 사용할 상대방의 공개키를 설정한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_GenerateKey (void *key, unsigned int keylen, KACONTEXT *kacontext)
 미리 입력된 개인키와 공개키를 이용하여 비밀키를 생성한다. 더 자세히 ...
 

상세한 설명

키합의 (또는 키분배)

열거형 타입 문서화

◆ KEX_type

enum KEX_type

키합의 종류

열거형 멤버
KEX_DH 

defined in PKCS#3

KEX_DH_X9_42 

defined in X9.42

KEX_ECDH 
KEX_ECCDH 

함수 문서화

◆ ISSAC_KACONTEXT_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Create ( KACONTEXT kacontext)

KACONTEXT 구조체를 초기화한다. (KEDH)

주의
사용 후 반드시 ISSAC_KACONTEXT_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : KACONTEXT의 u 초기화 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
kacontext[IN,OUT] 초기화 할 KACONTEXT

◆ ISSAC_KACONTEXT_CreateOnly()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_CreateOnly ( KACONTEXT kacontext,
KEX_type  type 
)

KACONTEXT 구조체를 초기화한다. (키합의 종류 지정)

주의
사용 후 반드시 ISSAC_KACONTEXT_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
kacontext[IN,OUT] 초기화 할 KACONTEXT
type[IN] 키합의 종류

◆ ISSAC_KACONTEXT_Create_Ex()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Create_Ex ( KACONTEXT kacontext,
KEX_type  type 
)

KACONTEXT 구조체를 초기화한다. (키합의 종류에 따라 임의의 기본값 설정)

주의
사용 후 반드시 ISSAC_KACONTEXT_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_KA_CAN_NOT_SET_PARAM : KACONTEXT의 u_ex 에 Parameter 설정 실패 (암호모듈에서 발생한 오류)
ER_KA_CAN_NOT_SET_KDF : KACONTEXT의 u_ex 에 KDF 설정 실패 (암호모듈에서 발생한 오류)
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
kacontext[IN,OUT] 초기화 할 KACONTEXT
type[IN] 키합의 종류
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KACONTEXT_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_Delete ( KACONTEXT kacontext)

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

반환값
ISSAC_SUCCESS : 성공
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create() 또는 ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KA_Initialize()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_Initialize ( void *  sessioninfo,
int *  sessioninfo_len,
int  sessioninfo_alloc_len,
KACONTEXT kacontext 
)

자신의 세션정보를 생성하고, 상대방에게 전달할 세션정보를 출력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_KA_CAN_NOT_GEN_SESSION_INFO : 세션정보 생성 실패
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
매개변수
sessioninfo[OUT] 출력 버퍼
sessioninfo_len[OUT] 실제 출력 크기
sessioninfo_alloc_len[IN] 출력 버퍼 크기
kacontext[IN,OUT] ISSAC_KACONTEXT_Create() 또는 ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KA_Finalize()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_Finalize ( KACONTEXT kacontext,
void *  sessioninfo,
int  sessioninfo_len 
)

상대방의 세션정보를 조합하여 키합의를 마무리한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
매개변수
kacontext[IN,OUT] ISSAC_KA_Initialize() 를 호출하여 자신의 세션정보가 생성된 KACONTEXT
sessioninfo[IN] 상대방의 세션정보
sessioninfo_len[IN] 상대방의 세션정보 크기
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KA_GetSessionKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_GetSessionKey ( void *  key,
int  key_len,
KACONTEXT kacontext 
)

키합의가 완료된 KACONTEXT 를 통해 세션키를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 세션키 생성 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_KA_INVALID_V : 상대방의 세션정보 오류. ISSAC_KA_Finalize() 로 상대방의 세션정보를 먼저 설정해야 함
ER_KA_INVALID_U : 자신의 세션정보가 생성되어 있지 않음
ER_KA_CAN_NOT_MEET_GIVEN_LEN : 생성된 세션키의 길이가 요청한 길이와 맞지 않음
매개변수
key[OUT] 키합의로 생성된 세션키 버퍼
key_len[IN] 세션키 크기
kacontext[IN] ISSAC_KA_Finalize() 를 호출하여 세션정보 조합이 완료된 KACONTEXT
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KACONTEXT_SetParam_ECDH()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_ECDH ( KACONTEXT kacontext,
unsigned int  curve_id 
)

ECDH 에 사용할 커브를 설정한다. (호출하지 않으면 ISSACAPI_EC_CURVE_P256)

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 지원하지 않는 커브
ER_INVALID_INPUT : 입력값 오류
ER_KA_CAN_NOT_SET_PARAM : KACONTEXT의 u_ex 에 Parameter 설정 실패 (암호모듈에서 발생한 오류)
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
curve_id[IN] EC 커브 [ ISSACAPI_EC_CURVE_P192, ISSACAPI_EC_CURVE_P224, ISSACAPI_EC_CURVE_P256, ISSACAPI_EC_CURVE_P384, ISSACAPI_EC_CURVE_P521 ]
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KACONTEXT_SetKDF()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetKDF ( KACONTEXT kacontext,
int  unused,
int  hashAlg 
)

키유도 함수에 필요한 키길이와 해시 알고리즘을 설정한다. (호출하지 않으면 32, ISSACAPI_SHA256)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 해시 알고리즘 오류
ER_KA_CAN_NOT_SET_KDF : KACONTEXT의 u_ex 에 KDF 설정 실패 (암호모듈에서 발생한 오류)
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
unused[IN] 사용하지 않음
hashAlg[IN] 해시 알고리즘 [ ISSACAPI_SHA1, ISSACAPI_SHA256, ISSACAPI_SHA384, ISSACAPI_SHA512, ISSACAPI_HAS160, ISSACAPI_RIPEMD160, ISSACAPI_MD5 ]
예제
issacapi/ka/sample_ka_basic.c.

◆ ISSAC_KACONTEXT_SetParam_PrivateKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PrivateKey ( KACONTEXT kacontext,
PRIVATEKEY priKey 
)

ECDH 에 사용할 개인키를 설정한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
priKey[IN] 개인키

◆ ISSAC_KACONTEXT_SetParam_PeerCertificate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PeerCertificate ( KACONTEXT kacontext,
CERTIFICATE peerCert 
)

ECDH 에 사용할 상대방의 공개키를 인증서를 이용하여 설정한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
peerCert[IN] 상대방의 인증서

◆ ISSAC_KACONTEXT_SetParam_PeerPublicKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_SetParam_PeerPublicKey ( KACONTEXT kacontext,
PUBLICKEY peerPubKey 
)

ECDH 에 사용할 상대방의 공개키를 설정한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
kacontext[IN,OUT] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT
peerPubKey[IN] 상대방의 공개키

◆ ISSAC_KACONTEXT_GenerateKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KACONTEXT_GenerateKey ( void *  key,
unsigned int  keylen,
KACONTEXT kacontext 
)

미리 입력된 개인키와 공개키를 이용하여 비밀키를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
key[OUT] 키합의로 생성된 비밀키 버퍼
keylen[IN] 비밀키 크기
kacontext[IN] ISSAC_KACONTEXT_Create_Ex() 를 호출하여 초기화 된 KACONTEXT