#include <stdio.h>
static int sample_setup() {
return 1;
}
return 0;
}
static ISSAC_RETURN sample_ka_initialize(
unsigned char *sessionInfo,
int *sessionInfoSize,
int sessionInfoBufferSize,
KACONTEXT *kacontext) {
}
}
return result;
}
static ISSAC_RETURN sample_ka_finalize(
unsigned char *sessionKey,
int sessionKeySize,
unsigned char *peerSessionInfo,
int peerSessionInfoSize,
KACONTEXT *kacontext) {
}
return result;
}
static int sample_ka_basic() {
unsigned char sessionInfoA[2048] = { 0, };
int sessionInfoLenA = 0;
unsigned char sessionInfoB[2048] = { 0, };
int sessionInfoLenB = 0;
unsigned char sessionKeyA[16] = { 0, };
unsigned char sessionKeyB[16] = { 0, };
printf("sample_ka_basic() => ");
result = sample_ka_initialize(sessionInfoA, &sessionInfoLenA, sizeof(sessionInfoA), &peerA);
result = sample_ka_initialize(sessionInfoB, &sessionInfoLenB, sizeof(sessionInfoB), &peerB);
}
result = sample_ka_finalize(sessionKeyB, sizeof(sessionKeyB), sessionInfoA, sessionInfoLenA, &peerB);
}
result = sample_ka_finalize(sessionKeyA, sizeof(sessionKeyA), sessionInfoB, sessionInfoLenB, &peerA);
}
printf("[OK]\n");
return 0;
} else {
return 1;
}
}
int main() {
int result;
result = sample_setup();
if (result != 0) {
return result;
}
return sample_ka_basic();
}
unsigned int ISSAC_RETURN
ISSAC-API 실행 결과 [ ISSACAPI_BASIC_RETURN, ISSACAPI_ERRORS, ISSAC_LICENSE_ERR ]
Definition: issacapi_bs_definitions.h:32
@ ISSACAPI_EC_CURVE_P256
(2) NIST curve P-256
Definition: issacapi_bs_definitions.h:77
@ ISSAC_SUCCESS
(0) 성공
Definition: issacapi_bs_definitions.h:37
@ ISSACAPI_SHA256
(6) SHA256
Definition: issacapi_bs_definitions.h:89
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_Initialize(void)
모듈을 초기화한다.
WA_SDK_API const char *FUNCCALL ISSAC_GetErrorMessage(ISSAC_RETURN errorCode)
ISSAC-API 의 에러코드에 대한 에러메시지를 가져온다.
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_KA_Finalize(KACONTEXT *kacontext, void *sessioninfo, int sessioninfo_len)
상대방의 세션정보를 조합하여 키합의를 마무리한다.
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_KA_GetSessionKey(void *key, int key_len, 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_KACONTEXT_Create_Ex(KACONTEXT *kacontext, KEX_type type)
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_Delete(KACONTEXT *kacontext)
KACONTEXT 에 할당된 메모리를 해제한다.
@ KEX_ECDH
Definition: issacapi_ka.h:35
키합의 컨텍스트
Definition: issacapi_ka.h:25