如何为 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
免责声明:我运行该网站。