【问题标题】:Problem with openssl functions for certificate authority证书颁发机构的openssl函数问题
【发布时间】:2018-11-09 09:24:51
【问题描述】:

我想为客户端和服务器编写一个程序,他们需要在连接之前与证书颁发机构进行连接。 我正在使用 openssl 作为算法。 当我在终端中运行客户端时,出现以下错误:

    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)

实际上客户端首先生成 RSA 密钥并发送给 CA 以获得 x509 证书。 在 CA 代码中,我也收到这些错误:

    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

谁能帮我解决这个问题? 非常感谢。

【问题讨论】:

    标签: c++ openssl rsa x509certificate x509


    【解决方案1】:

    你是如何编译和链接你的程序的?看起来您缺少 crypto 库。根据pkg-config --libs libcrypto,您只需将-lcrypto -lz 传递给链接器即可。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 2018-06-19
      • 2023-03-30
      • 2012-04-18
      • 1970-01-01
      • 2011-07-28
      • 2016-01-01
      • 1970-01-01
      相关资源
      最近更新 更多