
sodium_crypto_sign_open 함수는 signature verification을 위해 사용되며, 이 함수의 인자로 key와 message를 받습니다. key와 message는 다음과 같이 구별할 수 있습니다.
- key: signature를 생성한 private key
- message: signature가 생성된 메시지
이 함수는 반환된 결과를 다음과 같이 해석할 수 있습니다.
- 0: signature가 valid한 것으로 확인
- -1: signature가 invalid한 것으로 확인
- -2: signature가 invalid한 것으로 확인 (key가 invalid한 경우)
예를 들어, signature verification을 위해 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
c
#include
int main() {
unsigned char key[32];
unsigned char message[32];
unsigned char signature[64];
// signature를 생성한 private key
sodium_init();
crypto_sign_keypair(key, NULL);
// signature가 생성된 메시지
message[0] = 'H';
message[1] = 'e';
message[2] = 'l';
message[3] = 'l';
message[4] = 'o';
// signature를 생성
crypto_sign(signature, NULL, message, 5, key);
// signature verification
int result = sodium_crypto_sign_open(message, NULL, signature, 64, key);
if (result == 0) {
printf("signature가 valid한 것으로 확인n");
} else if (result == -1) {
printf("signature가 invalid한 것으로 확인n");
} else if (result == -2) {
printf("key가 invalid한 것으로 확인n");
}
return 0;
}
이 함수를 사용하는 예시 코드는 위의 코드를 참고하시기 바랍니다.
2025-06-08 17:53