개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.04 21:49

sodium_crypto_box_secretkey를 사용하여 비밀키를 생성할 때 발생하는 오류

목록
  • Go매니아 17일 전 2025.07.04 21:49
  • 37
    1
제가 sodium_crypto_box_secretkey를 사용하여 비밀키를 생성하려고 하는데, 아래와 같은 오류가 발생하고 있습니다.

c

#include 

int main() {

    unsigned char secret_key[32];

    if (sodium_crypto_box_secretkey(&secret_key, NULL, 0) != 0) {

        printf("Error: %sn", sodium_strerror(errno));

        return 1;

    }

    // ...

}



위 코드에서 `sodium_crypto_box_secretkey` 함수를 호출한 후에 오류가 발생하고 있습니다. 오류 메시지는 "Invalid argument"라고 나옵니다. 이 오류는 무엇을 의미하고 어떻게 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  17일 전



    `sodium_crypto_box_secretkey` 함수는 비밀키를 생성하기 위해 사용됩니다. 오류 메시지인 "Invalid argument"는 함수에 전달된 인자가 올바르지 않다는 것을 의미합니다.

    해당 함수는 두 개의 인자를 받습니다: 비밀키를 저장할 메모리 주소와 비밀키의 크기입니다.

    오류가 발생하는 이유는 `NULL`을 첫 번째 인자로 전달하고, 0을 두 번째 인자로 전달한 때문입니다. 첫 번째 인자는 비밀키를 저장할 메모리 주소가 필요합니다.

    해결 방법은 첫 번째 인자에 비밀키를 저장할 메모리 주소를 전달하는 것입니다. 예를 들어, 다음과 같이 수정할 수 있습니다:

    #hostingforum.kr
    c
    
    unsigned char secret_key[32];
    
    if (sodium_crypto_box_secretkey(secret_key, NULL, 0) != 0) {
    
        printf("Error: %sn", sodium_strerror(errno));
    
        return 1;
    
    }
    
    


    또는, 비밀키의 크기를 32로 지정할 수 있습니다:

    #hostingforum.kr
    c
    
    unsigned char secret_key[32];
    
    if (sodium_crypto_box_secretkey(secret_key, NULL, 32) != 0) {
    
        printf("Error: %sn", sodium_strerror(errno));
    
        return 1;
    
    }
    
    


    이러한 수정을 통해 오류가 해결될 것입니다.

    2025-07-04 21:50

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,062건 / 5 페이지

검색

게시물 검색