OpenSSL non viene collegato con homebrew su El Capitan 10.11.6

4

Sto provando a codificare in C su OS X (El Capitan) e ho bisogno di usare OpenSSL. Il sistema operativo viene fornito con la versione 0.9.8zh 14 Jan 2016 .

Ho usato homebrew per aggiornare e installare openssl (versione 1.0.2h) ma non riesco a collegarlo correttamente per usarlo. Questo è ciò che è fatto:

brew update

brew install openssl

brew link --force openssl

che mi ha dato un errore dicendo

Warning: Refusing to link: openssl .

Il mio percorso fa riferimento a /usr/local/bin come il primo.

Eseguito questo comando: ln -s /usr/local/Cellar/openssl/1.0.2j/include/openssl /usr/local/include/openssl

(abbiamo trovato questa soluzione qui: Openssl con El Capitan tra gli altri luoghi )

non ha ricevuto alcun errore, quindi ho pensato che funzionasse. Ma ..

which openssl mi dà questo risultato: /usr/local/bin/openssl

openssl version mi dà questo risultato: OpenSSL 0.9.8zh 14 Jan 2016

Tutto quello che sto cercando di fare è eseguire alcuni comandi CLI / scrivere un codice C modificato in% vi editor, compilato usando gcc . Sto includendo openssl nei file header usando

 #include <openssl/sha.h>
#include <openssl/ripemd.h>

Inoltre, il comando che sto eseguendo su CLI che mi ha portato a questo percorso era questo (se questo aiuta):

openssl dgst -sha256 -sign ec-priv.pem ex-message.txt >ex-signature.der.

Mi dà un errore:

EVP_SignFinal:wrong public key type.

Googling mi ha portato a capire che è la causa di una vecchia versione di OpenSSL che devo aggiornare.

Qualche idea su come procedere qui?

    
posta Tuhina Singh 03.10.2016 - 11:12
fonte

2 risposte

1

Dovrai assicurarti di aprire una nuova shell dopo aver eseguito il collegamento. (Ho aggiornato il mio articolo di media che hai collegato per riferimento futuro: Openssl con El Capitan ).

    
risposta data 20.10.2016 - 18:49
fonte
1

Da Brew rifiutando di collegare openssl su Stack Overflow e Issue 3964, .Net GitHub (Penso che sia stato segnalato per la prima volta con .Net):

I looked into the other option that was suggested for setting the rpath on the library. I think the following is a better solution that will only effect this specific library.

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

and/or if you have NETCore 1.0.1 installed perform the same command for 1.0.1 as well:

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

In effect, rather than telling the operating system to always use the homebrew version of SSL and potentially causing something to break, we're telling dotnet how to find the correct library.

which openssl gives me this output: /usr/local/bin/openssl

openssl version gives me this output: OpenSSL 0.9.8zh 14 Jan 2016

Aggiungi un percorso per l'eseguibile openssl . Il sistema di build di OpenSSL non fornisce un percorso. In fase di runtime, i tuoi nuovi collegamenti eseguibili alle vecchie librerie.

    
risposta data 25.11.2016 - 04:56
fonte

Leggi altre domande sui tag