Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows8Metro上编译OpenSSL_Windows_Windows 8_Windows Runtime - Fatal编程技术网

在Windows8Metro上编译OpenSSL

在Windows8Metro上编译OpenSSL,windows,windows-8,windows-runtime,Windows,Windows 8,Windows Runtime,我必须将OpenSSL移植到winRT(x86而非ARM上的windows 8 metro),因此我计划从编译winRT开始。 我已从下载源代码 在源代码中,我看到一些特定于操作系统的文件夹,如MacOS、OS2,还有ms文件夹,但我没有看到任何visual studio项目。到目前为止,我读到的关于编译OpesSSL的内容都是关于makefiles和mingw的,但我对makefiles不太熟悉,而且不确定cygwin和perl是否会在windows 8中得到支持。因此,我正在寻找一些关于如何

我必须将OpenSSL移植到winRT(x86而非ARM上的windows 8 metro),因此我计划从编译winRT开始。 我已从下载源代码


在源代码中,我看到一些特定于操作系统的文件夹,如MacOS、OS2,还有ms文件夹,但我没有看到任何visual studio项目。到目前为止,我读到的关于编译OpesSSL的内容都是关于makefiles和mingw的,但我对makefiles不太熟悉,而且不确定cygwin和perl是否会在windows 8中得到支持。因此,我正在寻找一些关于如何使用VisualStudio在Windows8上编译OpenSSL的想法。请分享你的知识或给我指出一个可以帮助我做到这一点的方向。非常感谢

为什么要在WinRT中使用OpenSSL

如果您仅出于安全目的使用它,那么可以在Metro样式的WinRT中省略它。因为WinRT本身为metro风格的套接字编程提供了安全性,比如

//0: A plain socket with no encryption.
socket->ConnectAsync(hostname, serviceName, SocketProtectionLevel::PlainSocket);

//1: A socket that must use the SSL for encryption. This value requires encryption and never allows a NULL cipher.
socket->ConnectAsync(hostname, serviceName, SocketProtectionLevel::Ssl);

//2: A socket that prefers to use the SSL for encryption. This value prefers that full encryption be used, but allows a NULL cipher (no encryption) based on the server configuration.
socket->ConnectAsync(hostname, serviceName, SocketProtectionLevel::SslAllowNullEncryption);

OpenSSL将在Windows 8下构建,仅用于桌面模式。Metro/WinRT不再提供Winsock(或API兼容的替代方案),因此您将无法直接为WinRT编译。

Metro风格的SSL加密解决方案运行良好。但是,如果您没有连接到web服务,则存在一些缺点:
-您无法控制SSL握手的参数(如密码、服务器证书验证)
-无法向服务器提供用户证书以对客户端进行身份验证
-依赖Microsoft升级SSL堆栈、新加密等。

有一些人正在致力于将openssl移植到windows运行时。看见
这意味着您只配置和构建openssl,而不支持winsock(仅支持内存),并替换一些不受支持的函数


因此,它是可能做到这一点,但还没有支持开箱即用和相当多的工作相比,内置的解决方案。但是,如果您想移植一些已经使用openssl的软件,这可能是一个解决方案。

非常感谢您的关注点,我必须使用openssl,因为我正在将现有的windows库移植到WinRT。openssl用于证书存储和处理。是的,我无法直接编译,因为没有您提到的winsock,我必须找到winsock的替代品。。可以使用streamsocket。我更感兴趣的是知道在VisualStudio项目中包含哪些文件。如果我阅读makefile nt32dll.mak,那么有很多文件,我真的需要包含所有这些文件吗?通过Visual Studio 2013 Update 3,Microsoft已为Windows Phone和Windows应用商店应用程序启用WinSock和OpenSSL。您可以使用WinSock API,因此可以使用许多流行的OSS库,如libcURL、libwebsockets、OpenSSL等。有关详细信息,请参见此处-通过Visual Studio 2013更新3,Microsoft已为Windows Phone和Windows应用商店应用程序启用WinSock和OpenSSL。您可以使用WinSock API,因此也可以使用许多流行的OSS库,如OpenSSL。更多信息请参见此处-