
1. Ed25519 키를 생성하는 방법은 sodium_crypto_sign_keypair 함수를 사용하여 키를 생성할 수 있습니다. 이 함수는 2개의 키를 생성하는데, 하나는 공개 키(public key)이고 다른 하나는 비밀 키(private key)입니다.
#hostingforum.kr
c
#include
unsigned char public_key[32];
unsigned char private_key[32];
int main() {
if (sodium_crypto_sign_keypair(public_key, private_key) != 0) {
printf("키 생성 실패n");
return 1;
}
return 0;
}
2. 생성된 키를 사용하여 메시지를 암호화하는 방법은 sodium_crypto_sign 함수를 사용합니다. 이 함수는 메시지를 암호화하고, 메시지 인증을 함께 합니다.
#hostingforum.kr
c
#include
unsigned char public_key[32];
unsigned char private_key[32];
unsigned char message[32];
unsigned char signature[64];
int main() {
// 키 생성
if (sodium_crypto_sign_keypair(public_key, private_key) != 0) {
printf("키 생성 실패n");
return 1;
}
// 메시지 암호화
if (sodium_crypto_sign(message, signature, "Hello, World!", strlen("Hello, World!"), private_key) != 0) {
printf("메시지 암호화 실패n");
return 1;
}
return 0;
}
3. 메시지 인증을 하기 위해서는 sodium_crypto_sign_open 함수를 사용합니다. 이 함수는 메시지 인증을 하기 위해 암호화된 메시지와 함께 사용하는 공개 키를 필요로 합니다.
#hostingforum.kr
c
#include
unsigned char public_key[32];
unsigned char private_key[32];
unsigned char message[32];
unsigned char signature[64];
int main() {
// 키 생성
if (sodium_crypto_sign_keypair(public_key, private_key) != 0) {
printf("키 생성 실패n");
return 1;
}
// 메시지 암호화
if (sodium_crypto_sign(message, signature, "Hello, World!", strlen("Hello, World!"), private_key) != 0) {
printf("메시지 암호화 실패n");
return 1;
}
// 메시지 인증
if (sodium_crypto_sign_open(message, signature, public_key) != 0) {
printf("메시지 인증 실패n");
return 1;
}
return 0;
}
이러한 예제를 통해 Ed25519 키를 생성하고, 메시지를 암호화하고, 메시지 인증을 하는 방법을 이해할 수 있습니다.
2025-05-15 23:13