我正在尝试使用.Net的sslStream类创建TLS1.1/TLS1.2服务器.默认情况下,此流接受的唯一密码套件似乎是:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Run Code Online (Sandbox Code Playgroud)
我想启用这些的非ECDHE版本(即TLS_RSA_WITH_AES_128_CBC_SHA256).我google了一下,人们谈论通过修改默认的SChannel设置来更改密码套件 - 通过"SSL密码套件订单"或使用CNG功能:http://msdn.microsoft.com/en-us/library/窗户/桌面/ bb870930(v = vs.85)的.aspx
但是,我试过这个,我无法得到任何工作.使用上面链接的C++代码列出启用的密码套件,其中BCryptEnumContextFunctions()显示我想要的密码套件默认启用.我甚至添加了TLS_RSA_WITH_AES_128_CBC_SHA256作为最高优先级套件,并且sslStream仍然拒绝来自仅支持该密码的客户端的TLS连接(例外:"客户端和服务器无法通信,因为它们没有通用算法")任何想法是什么去吧?
(顺便说一句,如果我的客户支持其中一个ECDHE密码套件,一切都很好)
其他人如何在.Net 4.5中实现TLS?我应该看看开源解决方案吗?SChannel的包装器如何更直接地使用CNG api?
在运行时git mergetool,我想让git选择基于文件扩展名使用的合并工具.我怎样才能做到这一点?
这里也提出了类似的问题:Git:为difftool和mergetool配置模式,
答案是编写自定义合并驱动程序.但是,似乎这将被执行git merge,而我希望选择合并工具git mergetool.
似乎必须有一些方法来指定.gitattributes,但我似乎无法弄清楚如何.有什么建议?
我们有一个使用多个COM引用的Visual Studio 2012项目(C#).我将它带入Git并且无法弄清楚如何处理COM引用.如果我以典型方式添加COM引用,(添加引用 - > COM选项卡 - >选择我的引用),会出现以下情况:
Visual Studio在*.csproj文件中添加了对引用的提及,其中包括GUID字段和版本字段.从这里,我认为Visual Studio在windows\system32文件夹中查找并在构建时找到必需的DLL.在一些开发PC上,我们有Windows 8,而在其他PC上我们有Windows 7,事实证明每个版本的Windows都引用了不同版本的COM DLL.所以,如果我:1)在Windows 8 PC上添加引用; 2)将项目提交给Git; 3)在Windows 7 pc上签出项目; 4)尝试在Windows 7 pc上构建项目 - 构建失败.这是因为Windows 7 pc具有与Windows 8 PC上不同版本的COM DLL.
处理这种情况的最佳方法是什么?我应该手动将必要的COM DLL复制到我的项目文件夹中并在Git中对它们进行版本控制吗?如果我这样做,我将如何处理Microsoft对其DLL的更新?(定期检查windows\system32文件夹中的差异?)还有 - 我将哪个版本复制到项目文件夹中 - Windows 8或Windows 7附带的版本?