zoukankan      html  css  js  c++  java
  • 一种OPENSSL_Uplink(100F2010,05): no OPENSSL_Applink解决方法

       最近项目中使用Openssl库时,程序编译没有错误,但是执行时出现OPENSSL_Uplink(100F2010,05): no OPENSSL_Applink错误,在网上找了好多原因,大部分是说DLL库调用方式不正确,应该修改为与Openssl库相同的编译方式也就是/Md方式,但是都不能解决问题,我的代码是从一个pem文件中读取RSA私钥,出错的代码如下:

       FILE* fp = fopen (keyFileName, "r");
     if ( fp == 0 )
     {
      perror(keyFileName);
      return (-1);
     }

     m_PrivateKey = PEM_read_PrivateKey(fp, 0, 0, 0);
     fclose(fp);
     if ( m_PrivateKey == 0 )
     {
      cerr << "Error reading RSA key in file " <<keyFileName<< endl;
      return (-1);
     }

      最后把上述读取私钥的代码修改为通过BIO方式读取,上述问题不再出现,代码如下:

      BIO* in=NULL;
     //生成IO对象
     in = BIO_new(BIO_s_file());
     //将Key文件读入IO
     BIO_read_filename(in,keyFileName);
     if (in == NULL)
     {
      perror(keyFileName);
      return -1;
     }
     //将IO中数据以PEM格式读入EVP_PKEY结构中
     m_PrivateKey = PEM_read_bio_PrivateKey(in, NULL, NULL, NULL);
     if (in != NULL)
      BIO_free (in);

     if ( m_PrivateKey == NULL )
     {
      cerr << "读取Key文件失败! " << keyFileName << endl;
      return -1;
     }

  • 相关阅读:
    HTML的<head>中的内容总结
    毕业设计
    win7中protel99添加元件库
    E题
    D 题
    C 题 KMP中next[]问题
    B题 Sort the Array
    A题
    CSU1350 To Add which?
    CodeForce 448C 木片填涂问题
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167959.html
Copyright © 2011-2022 走看看