2017-12-31 218 views
2

개인 비트 코인 주소에서 공개 키를 생성하는 방법을 확인했습니다. 나는 OpenSSL을 설치 한과 관련된 프로그래밍 오류가 없었어요함수의 암시 적 선언 'BN_init'오류

public_key.c: In function 'generate_pubic_key': 
public_key.c:26:13: error: storage size of 'start' isn't known 
     BIGNUM start; 
      ^~~~~ 
public_key.c:32:6: error: implicit declaration of function 'BN_init' [-Werror=implicit-function-declaration] 
     BN_init(&start); 
     ^~~~~~~ 
public_key.c:26:13: error: unused variable 'start' [-Werror=unused-variable] 
     BIGNUM start; 
      ^~~~~ 
cc1: all warnings being treated as errors 

: 나는 다음과 같은 페이지를 찾을 수 : How do I obtain the public key from an ECDSA private key in OpenSSL?

을하지만 gcc -Wall -Werror -O3 -o public_key public_key.c -lcrypto 컴파일 할 때, 나는 다음과 같은 오류를 얻을 수 지금까지. 누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?

+0

기회는 나중에하려면 openssl 1.1.0이 있거나 것을, 그리고 당신이 것을 다음과 같이 일반적으로이 는 할 것 이전에는 더 이상 사용되지 않고 이제 완전히 제거 된 기능을 사용합니다. 아래 답변보기 –

답변

4

더 이상 사용되지 않는 API는 입니다. BN_new(3) man 페이지 당으로

:

삭제됨 기능상 무효 BN_init (의 bignum *);

OpenSSL 1.1.0 이상에서는 BN_init()를 사용할 수 없습니다. 기존의 초기화되지 않은 BIGNUM을 초기화하는 데 사용되었습니다.

BIGNUM a; 
BN_init(&a); 
대신 BN_new와 BN_init의 사용을 대체해야

응용 프로그램 :

BIGNUM *a; 
a = BN_new(); 
if(!a) /* Handle error */ 
... 
BN_free(a);