Reputation: 91
I want to write a program for a client and server that they need to connect with certificate authority before connection. I'm using openssl for the algorithms. When I run the client in terminal I get these errors:
Undefined symbols for architecture x86_64:
"_EVP_PKEY_assign", referenced from:
generate_key() in Alice-c8763f.o
"_EVP_PKEY_free", referenced from:
generate_key() in Alice-c8763f.o
"_EVP_PKEY_new", referenced from:
generate_key() in Alice-c8763f.o
"_RSA_generate_key", referenced from:
generate_key() in Alice-c8763f.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Actually the client first generates RSA key and send to CA for x509 certificate. in CA code also I get these errors:
Undefined symbols for architecture x86_64:
"_ASN1_INTEGER_set", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_EVP_PKEY_free", referenced from:
routine1(void*) in CA-ceff6a.o
"_EVP_sha1", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_PEM_write_PrivateKey", referenced from:
write_to_disk(evp_pkey_st*, x509_st*) in CA-ceff6a.o
"_PEM_write_X509", referenced from:
write_to_disk(evp_pkey_st*, x509_st*) in CA-ceff6a.o
"_X509_NAME_add_entry_by_txt", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_free", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
routine1(void*) in CA-ceff6a.o
"_X509_get_serialNumber", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_get_subject_name", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_gmtime_adj", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_new", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_set_issuer_name", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_set_pubkey", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_sign", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
ld: symbol(s) not found for architecture x86_64
can Anyone help me solve this problem? thanks a lot.
Upvotes: 1
Views: 281
Reputation: 194
How are you compiling and linking your program? Looks like you are missing the crypto
library. According to pkg-config --libs libcrypto
, you just need to pass -lcrypto -lz
to the linker.
Upvotes: 1