2012-07-18 72 views
2

我必须将OpenSSL移植到winRT(x86上的Windows 8 metro而非ARM),因此我打算开始编译WinRt。 我从http://www.openssl.org/source/在Windows 8上编译OpenSSL地铁

下载源代码在源代码中,我看到这样的MacOS,OS2操作系统的一些特定文件夹和有MS文件夹为好,但我没有看到任何的Visual Studio项目。不管我迄今为止读过关于编译OpelsSSL关于makefile和mingw的讨论,但我对makefiles不是很满意,而且不确定cygwin和perl是否会在Windows 8中受支持。所以我正在寻找一些关于如何编译OpenSSL的想法在Windows 8上使用visual studio。请分享你的知识或指向我可以帮助我做这件事的方向。非常感谢

+0

大家好,任何见解plz .. – Avijeet 2012-07-23 09:57:52

+1

随着Visual Studio 2013更新3,微软已经启用WinSock和OpenSSL的Windows Phone和Windows应用商店的应用程序。您可以使用WinSock API,因此可以使用许多流行的OSS库,例如OpenSSL 有关它的更多信息,请参见http://blogs.windows.com/buildingapps/2014/10/13/winsock-and-more-open-source-for-你的windows-store-apps/ – coderpro 2014-10-14 22:00:41

回答

2

metro风格的SSL加密解决方案效果很好。但是,如果您未连接到Web服务,则存在一些缺点:
- 您无法控制SSL握手的参数(如密码,验证服务器证书)
- 无法提供用户证书来验证客户端到服务器
- 依赖微软升级SSL堆栈新加密等。

有一些人正在将openssl移植到Windows运行时。请参阅 http://openssl.6102.n7.nabble.com/winrt-random-td42100.html
这意味着您只需配置并构建不带winsock支持的openssl(仅限内存BIO)并替换一些不支持的功能。

所以有可能做到这一点,但尚未支持开箱即用,而且与内置解决方案相比有相当多的工作量。但是如果你想使用openssl移植一些软件,这可能是一个解决方案。

1

为什么你想在WinRT中使用OpenSSL?

如果您仅将它用于安全目的,那么您可以忽略它inmetro风格的WinRT。因为WinRT本身为城域风格的套接字编程提供安全性,例如

//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); 
+0

非常感谢你有趣的一点,我必须使用openssl,因为我正在将现有的Windows库移植到WinRT。 openssl用于证书存储和处理。 – Avijeet 2012-07-30 04:55:54

2

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

+0

是的,我不能直接编译,因为你没有提到winsock,我将不得不找到winsock的替代品..可能是通过使用streamsocket。我更感兴趣的是知道什么文件包含在Visual Studio项目中。如果我读取makefile nt32dll.mak有大量文件,我是否真的需要包含所有这些文件。 – Avijeet 2012-07-30 04:58:07

+0

使用Visual Studio 2013 Update 3,Microsoft为Windows Phone和Windows Store应用程序启用了WinSock和OpenSSL。您可以使用WinSock API以及许多流行的OSS库,例如libcURL,libwebsockets,OpenSSL等。 有关它的更多信息,请参阅http://blogs.windows.com/buildingapps/2014/10/13/winsock-and-more-开源换你的窗口,商店的应用程序/ – coderpro 2014-10-14 22:02:02