www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Undefined Reference to OpenSSL EVP functions

reply Chris <dlang guerrillamail.com> writes:
I am trying to hook up OpenSSL to a dlang project I'm working on, 
but I have hit a problem when trying to link.

I currently get the following linking error:

undefined reference to `EVP_CIPHER_CTX_init'
I have made sure to include the module wrapping the c headers
 import deimos.openssl.evp;
And I have made sure that I am linking to "libcrypto" and "libssl" in my "dub.json" file. I have even pointed the linker to my "/usr/lib" folder And I made sure that those libraries are installed on my system in "/usr/lib"
libcrypto.o
libssl.o
Here is the code that I am trying to run:
import deimos.openssl.evp

void main()
{
    EVP_CIPHER_CTX *ctx;
    EVP_CIPHER_CTX_init(ctx);
}
Here is the full verbose output of dub: https://pastebin.com/raw/4FnhCyr2 Here is my full dub.json file: https://pastebin.com/raw/1Z3WGBET Any help would be greatly appreciated! Thank you so much!
Jan 15
parent Chris <dlang guerrillamail.com> writes:
On Tuesday, 16 January 2018 at 00:52:09 UTC, Chris wrote:
 I am trying to hook up OpenSSL to a dlang project I'm working 
 on, but I have hit a problem when trying to link.

 I currently get the following linking error:

undefined reference to `EVP_CIPHER_CTX_init'
I have made sure to include the module wrapping the c headers
 import deimos.openssl.evp;
And I have made sure that I am linking to "libcrypto" and "libssl" in my "dub.json" file. I have even pointed the linker to my "/usr/lib" folder And I made sure that those libraries are installed on my system in "/usr/lib"
libcrypto.o
libssl.o
Here is the code that I am trying to run:
import deimos.openssl.evp

void main()
{
    EVP_CIPHER_CTX *ctx;
    EVP_CIPHER_CTX_init(ctx);
}
Here is the full verbose output of dub: https://pastebin.com/raw/4FnhCyr2 Here is my full dub.json file: https://pastebin.com/raw/1Z3WGBET Any help would be greatly appreciated! Thank you so much!
Hi Everyone, this is not an error in D, or the OpenSSL wrapper code it's just me not reading the OpenSSL man pages... EVP_CIPHER_CTX_init is not longer the way to create the context in 1.1.0 - It has been replaced by:
EVP_CIPHER_CTX *ctx;
ctx = EVP_CIPHER_CTX_new()
RTFM...
Jan 15