如何为 WP8 构建 OpenSSL?
AFAIK,我们必须替换winsock.h为,winsock2.h因为 WP8 仅支持winsock2.h. 也许我们必须替换代码以针对 WP8 上的 WinRT 架构(线程池,...)
需要注意的是,我们必须将 OpenSSL 构建为 WP8 静态库,以便输出库可以被 WP8 运行时组件包装,对吗?
如何为 WP8 构建 OpenSSL?
AFAIK,我们必须替换winsock.h为,winsock2.h因为 WP8 仅支持winsock2.h. 也许我们必须替换代码以针对 WP8 上的 WinRT 架构(线程池,...)
需要注意的是,我们必须将 OpenSSL 构建为 WP8 静态库,以便输出库可以被 WP8 运行时组件包装,对吗?
您可以在 github 上使用 Microsoft openssl fork,支持 windows phone 8.1/8.0 和 Windows Store 8.1,使用 windows 随机生成器解决每个平台上的熵,说明位于 INSTALL.WINAPP,脚本位于
ms\do_vsprojects.bat
您应该能够使用根位置执行该脚本并打开 vsout\openssl.sln 为不同的 Windows 平台构建 openssl 库。
叉子位于
https://github.com/microsoft/openssl
目前,这些更改正在与主要的 OpenSSL 源代码库集成。
这是你要做的,去这个链接下载VSbuild,现在把它放到从OpenSSL网站下载的源文件中,文件夹结构应该是这样的:
apps bugs certs ..... vsbuild
完成后,打开解决方案,它应该将其升级到 VS12,将设置更改为 Windows Phone RT 构建,生成 DLL 不需要构建 *_lib*,因此更改其他项目,您需要的大部分更改要做的是 libeay32,不要编译openssl项目,忽略它,从构建libeay32开始,然后开始对代码进行更改,因为有些功能我们在 WinRT 中没有,您可以将#ifdef它们删除,或者创建您的自己的功能,
注意rand_win.c更改要使用的功能和rand_s大部分#ifdef代码,这可能会破坏安全性,您必须自己测试
祝你好运 !
这样一来,如果有人想构建修复Heartbleed问题的新版本OpenSSL“1.0.1g” ,您可以按照前面的步骤进行以下更改:
我将文件夹include重命名为--include并创建了一个名为include的新文件夹,VS项目将负责复制信息,-- include 如果你喜欢你可以删除它,当我构建项目时没有这个更改在那里编译问题。
注意:我更改的包含文件夹是在根目录中找到的文件夹,而不是在VSbuild下找到的文件夹
享受
以下是 Windows Phone 8.1 以及其他平台的预编译 OpenSSL 库的下载:
https://www.teskalabs.com/blog/openssl-binary-distribution-for-developers-static-library
免责声明:我运行该网站。