개발자 Q&A

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

2025.06.08 17:52

Sodium_crypto_sign_open 함수에 대한 도움을 요청합니다.

목록
  • UI디자이너 10일 전 2025.06.08 17:52
  • 18
    1
제가 공부하는 과정에서 sodium_crypto_sign_open 함수의 사용법에 대한 혼란을 느꼈습니다.
이 함수는 signature verification을 위해 사용되는데, 이 함수의 인자로 key와 message를 받는데 key와 message는 어떻게 구별해야 하는지 궁금합니다.

또한, 이 함수가 반환하는 결과를 어떻게 해석해야 하는지 알려주시면 감사하겠습니다.

예를 들어, 반환된 결과가 0이면 signature가 valid한지 확인할 수 있는 방법이 있을까요?

혹시 이 함수를 사용하는 예시 코드가 있을까요?

제가 이해하기 쉽게 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    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

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

검색

게시물 검색