
`sodium_crypto_aead_chacha20poly1305_ietf_decrypt` 함수의 사용법은 다음과 같습니다.
1. nonce 값과 암호화된 데이터를 입력받아 복호화된 데이터를 반환받기 위해, 함수를 호출합니다.
#hostingforum.kr
c
char* decrypted_data = sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
decrypted_data_ptr, // 복호화된 데이터를 저장할 포인터
decrypted_data_len, // 복호화된 데이터의 길이
&nonce_len, // nonce 값의 길이
nonce, // nonce 값
nonce_len, // nonce 값의 길이
ciphertext, // 암호화된 데이터
ciphertext_len // 암호화된 데이터의 길이
);
2. nonce 값이 잘못된 경우 에러를 발생시키기 위해, 함수의 반환 값을 확인합니다. 함수는 성공적으로 복호화되면 NULL을 반환하고, 실패하면 NULL이 아닌 값을 반환합니다.
#hostingforum.kr
c
if (decrypted_data != NULL) {
// 복호화 성공
} else {
// 복호화 실패
}
3. nonce 값이 잘못된 경우 에러를 발생시키기 위해, `sodium_crypto_aead_chacha20poly1305_ietf_decrypt` 함수의 반환 값을 확인합니다. 함수는 성공적으로 복호화되면 0을 반환하고, 실패하면 -1을 반환합니다.
#hostingforum.kr
c
if (sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
decrypted_data_ptr, // 복호화된 데이터를 저장할 포인터
decrypted_data_len, // 복호화된 데이터의 길이
&nonce_len, // nonce 값의 길이
nonce, // nonce 값
nonce_len, // nonce 값의 길이
ciphertext, // 암호화된 데이터
ciphertext_len // 암호화된 데이터의 길이
) == 0) {
// 복호화 성공
} else {
// 복호화 실패
}
4. nonce 값이 잘못된 경우 에러를 발생시키기 위해, `sodium_crypto_aead_chacha20poly1305_ietf_decrypt` 함수의 반환 값을 확인합니다. 함수는 성공적으로 복호화되면 0을 반환하고, 실패하면 -1을 반환합니다. 또한, `sodium_strerror` 함수를 사용하여 에러 메시지를 확인할 수 있습니다.
#hostingforum.kr
c
if (sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
decrypted_data_ptr, // 복호화된 데이터를 저장할 포인터
decrypted_data_len, // 복호화된 데이터의 길이
&nonce_len, // nonce 값의 길이
nonce, // nonce 값
nonce_len, // nonce 값의 길이
ciphertext, // 암호화된 데이터
ciphertext_len // 암호화된 데이터의 길이
) == 0) {
// 복호화 성공
} else {
// 복호화 실패
printf("에러 메시지: %sn", sodium_strerror(sodium_last_error()));
}
이러한 방법으로 nonce 값이 잘못된 경우 에러를 발생시키는 방법을 알 수 있습니다.
2025-07-08 12:45