android - 使用 ssl 时 POCO 库卡在 Android 上

标签 android ssl android-ndk poco

我为 android 构建了 openssl 和 POCO 库。在我的应用程序中,我尝试使用 SSL。问题是当我创建处理程序时,它挂起并且永远不会返回。无论我使用哪种类型的证书处理程序,都会发生这种情况。这里可能出了什么问题?

我的代码:

Poco::Net::initializeSSL();
// Creating this handler is where it hangs.
SharedPtr<Poco::Net::InvalidCertificateHandler> pCert = new AcceptCertificateHandler(false);
//It never gets to this line.
Context::Ptr pContext = new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_NONE, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");

最佳答案

哦,哇哦,有人在 Android 上做 POCO/SSL 了。欢迎来到 hell :P

无论如何,令人困惑的是你将它卡在那里 - 我假设你已经用打印件进行了验证?也许你的调用线程被 Android 端杀死了?显然你不应该从 UI 线程调用它,所以就是这样。

如果这些都没有问题,那么我不确定问题是什么。我的 init SSL 几乎就是你的:

Poco::Net::initializeSSL();
Poco::SharedPtr<Poco::Net::InvalidCertificateHandler> accept_cert_handler =
    new Poco::Net::AcceptCertificateHandler(false);
Poco::SharedPtr<Poco::Net::PrivateKeyPassphraseHandler> console_handler =
    new Poco::Net::KeyConsoleHandler(false);
Poco::Net::Context::Ptr context =
    new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "",
    Poco::Net::Context::VERIFY_NONE, 9, true,
    "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");     

Poco::Net::SSLManager::instance().
    certificateHandlerFactoryMgr().
    setFactory("accept_handler",
    new Poco::Net::CertificateHandlerFactoryImpl<AcceptCertificateHandler>());

Poco::Net::SSLManager::instance().initializeClient(console_handler, 
                                                   accept_handler,
                                                   context);

关于android - 使用 ssl 时 POCO 库卡在 Android 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23661331/

相关文章:

ssl - 基本 SSL 证书问题

android - 使用 NDK 编译 native 代码

c++ - 使用 Android NDK 在 C++ 中对 gnuradio 的 undefined reference

android - 如何将数据从网站服务器发送到Android应用程序

javascript - 将 token 从 FirebaseAuth 传递到 Android 中的 Google Cast 自定义接收器

java - 无法使按钮从另一个 Activity 中可见

java - 如何修复 libgdx 项目上的此错误?

python - 代码适用于 Python 3.6,但不适用于 3.7

javascript - 我们如何使用 Javascript 在浏览器中调用 SSL 证书弹出窗口?

android - 我如何在致命信号 11 之后使用 logcat 中的输出来找出我从 android native 代码中获取错误的位置?