
crypto_generichash_keygen 함수는 Sodium 라이브러리에서 제공하는 키 생성 함수입니다. 이 함수는 사용자 지정 해쉬 함수를 기반으로 키를 생성하는 함수입니다.
입력 인자로는 다음과 같은 항목이 있습니다.
- outlen: 생성할 키의 길이를 나타내는 32비트 부호없는 정수입니다.
- ad: 추가 데이터를 포함하는 버퍼입니다. 이 버퍼는 키 생성에 사용됩니다.
- adlen: ad 버퍼의 길이를 나타내는 32비트 부호없는 정수입니다.
- ctx: 이전에 생성된 해쉬 컨텍스트를 저장하는 버퍼입니다. 이 버퍼는 키 생성에 사용됩니다.
출력 인자는 다음과 같습니다.
- key: 생성된 키를 저장하는 버퍼입니다.
이 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
c
#include
int main() {
unsigned char key[crypto_generichash_KEYBYTES];
unsigned char ad[] = "추가 데이터";
size_t adlen = strlen(ad);
if (crypto_generichash_keygen(key, ad, adlen, NULL) != 0) {
printf("키 생성에 실패했습니다.n");
return 1;
}
printf("생성된 키: ");
for (int i = 0; i < crypto_generichash_KEYBYTES; i++) {
printf("%02x", key[i]);
}
printf("n");
return 0;
}
이 함수의 보안 강도는 Sodium 라이브러리에서 제공하는 해쉬 함수의 보안 강도와 동일합니다. 보안 강도는 128비트입니다.
이 함수의 사용 범위는 키 생성에 사용됩니다. 예를 들어, 암호화나 디지털 서명과 같은 보안 관련 작업에서 사용됩니다.
2025-06-08 10:10