OpenSSL no está vinculado con Homebrew en El Capitán 10.11.6

4

Estoy intentando codificar en C en OS X (El Capitán) y necesito usar OpenSSL. El sistema operativo se envía con la versión 0.9.8zh 14 Jan 2016 .

Usé Homebrew para actualizar e instalar openssl (obtuve la versión 1.0.2h) pero no puedo vincularlo correctamente para usarlo. Esto es lo que se hizo:

brew update

brew install openssl

brew link --force openssl

que me dio un error al decir

Warning: Refusing to link: openssl .

Mi ruta hace referencia a /usr/local/bin como la primera.

Ejecutó este comando: ln -s /usr/local/Cellar/openssl/1.0.2j/include/openssl /usr/local/include/openssl

(encontró esta solución aquí: Openssl con El Capitan entre otros lugares )

no obtuvo salida de error, así que asumí que esto funcionó. Pero ..

which openssl me da esta salida: /usr/local/bin/openssl

openssl version me da esta salida: OpenSSL 0.9.8zh 14 Jan 2016

Todo lo que estoy tratando de hacer es ejecutar algunos comandos CLI / escribir un código C editado en el editor de vi , compilado usando gcc . Estoy incluyendo openssl en los archivos de cabecera utilizando

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

Además, el comando que estoy ejecutando en la CLI que me llevó a esta ruta fue este (si eso ayuda):

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

Me da un error:

EVP_SignFinal:wrong public key type.

La búsqueda en Google me llevó a comprender que es la causa de una versión antigua de OpenSSL que necesito actualizar.

¿Alguna idea sobre cómo proceder aquí?

    
pregunta Tuhina Singh 03.10.2016 - 11:12

2 respuestas

1

Deberá asegurarse de abrir un nuevo shell después de realizar el enlace. (Actualicé mi artículo mediano que enlazó para referencia futura: Openssl con El Capitán ). / p>     

respondido por el zlwaterfield 20.10.2016 - 18:49
1

De Brew rechazando enlazar openssl en Stack Overflow y Issue 3964, .Net GitHub (creo que primero se informó con .Net):

  

Busqué en la otra opción que se sugirió para establecer la ruta en la biblioteca. Creo que la siguiente es una mejor solución que   solo afectará a esta biblioteca específica.

     

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

     

y / o si tiene NETCore 1.0.1 instalado, ejecute el mismo comando para 1.0.1 también:

     

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

     

En efecto, en lugar de decirle al sistema operativo que siempre use la versión casera de SSL y posiblemente cause que algo   break, le estamos diciendo a dotnet cómo encontrar la biblioteca correcta.

  

which openssl me da esta salida: /usr/local/bin/openssl

     

openssl version me da esta salida: OpenSSL 0.9.8zh 14 Jan 2016

Agregue una ruta al ejecutable openssl . El sistema de compilación de OpenSSL no suministra un rpath. En tiempo de ejecución, su nuevo archivo ejecutable se vincula a las bibliotecas antiguas.

    
respondido por el jww 25.11.2016 - 04:56

Lea otras preguntas en las etiquetas