OS X (El Capitan)에서 C로 코딩하려고하는데 OpenSSL을 사용해야합니다. OS는 버전과 함께 제공됩니다 0.9.8zh 14 Jan 2016
.
homebrew를 사용하여 openssl (got 버전 1.0.2h)을 업그레이드하고 설치했지만 올바르게 사용하여 링크를 사용할 수 없습니다. 이것이 한 일입니다 :
brew update
brew install openssl
brew link --force openssl
나에게 오류 말을했다
Warning: Refusing to link: openssl
.
내 길은 /usr/local/bin
첫 번째 길 입니다.
이 명령을 실행하십시오.
ln -s /usr/local/Cellar/openssl/1.0.2j/include/openssl /usr/local/include/openssl
(여기 에서이 솔루션을 찾았습니다 : 다른 곳 중에서 El Capitan과 함께 Openssl )
오류 출력이 없으므로 이것이 효과가 있다고 가정했습니다. 그러나..
which openssl
나 에게이 출력을 제공합니다 : /usr/local/bin/openssl
openssl version
나 에게이 출력을 제공합니다 : OpenSSL 0.9.8zh 14 Jan 2016
내가하려는 것은 CLI 명령을 실행하거나 일반 vi
편집기로 편집하고 C를 사용하여 컴파일 된 C 코드를 작성하는 것 gcc
입니다. 헤더 파일에 openssl을 포함하고 있습니다.
#include <openssl/sha.h>
#include <openssl/ripemd.h>
또한 CLI에서 실행중인 명령 으로이 경로로 연결되었습니다 (도움이되는 경우).
openssl dgst -sha256 -sign ec-priv.pem ex-message.txt >ex-signature.der.
나에게 오류를 준다 :
EVP_SignFinal:wrong public key type.
인터넷 검색을 통해 업데이트해야 할 이전 OpenSSL 버전의 원인을 이해할 수있었습니다.
여기서 진행하는 방법에 대한 아이디어가 있습니까?
답변
링크를 수행 한 후 새 쉘을 열어야합니다. (나는 나중에 참조 할 수 있도록 링크 된 매체 기사를 업데이트했습니다 : Open Capa with El Capitan ).
답변
에서 브루 OpenSSL을 연결 거부 스택 오버플로와에 문제 3964, 닷넷 GitHub의은 (내가 처음 닷넷으로보고 생각)
라이브러리에서 rpath를 설정하기 위해 제안 된 다른 옵션을 살펴 보았습니다. 다음은이 특정 라이브러리에만 영향을 미치는 더 나은 솔루션이라고 생각합니다.
sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib
NETCore 1.0.1을 설치 한 경우 1.0.1에 대해서도 동일한 명령을 수행하십시오.
sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1
/System.Security.Cryptography.Native.dylib실제로 운영 체제에 항상 홈 브루 크 버전의 SSL을 사용하도록 지시하고 잠재적으로 문제가 발생하는 대신 닷넷에 올바른 라이브러리를 찾는 방법을 알려줍니다.
which openssl
나 에게이 출력을 제공합니다 :/usr/local/bin/openssl
openssl version
나 에게이 출력을 제공합니다 :OpenSSL 0.9.8zh 14 Jan 2016
openssl
실행 파일에 rpath를 추가하십시오 . OpenSSL의 빌드 시스템은 rpath를 제공하지 않습니다. 런타임시 새 실행 파일이 이전 라이브러리에 연결됩니다.