niloofar latifian
niloofar latifian

Reputation: 91

Problem with openssl functions for certificate authority

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

Answers (1)

sergiopm
sergiopm

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

Related Questions