在C#Metro/WinRT应用程序中使用强制转换加密

在C#Metro/WinRT应用程序中使用强制转换加密,c#,windows-runtime,cryptography,microsoft-metro,C#,Windows Runtime,Cryptography,Microsoft Metro,是否有支持Metro/WinRT强制转换加密的.NET API?与iOS上的CommonCrypto调用相当的东西: CCCrypt((mode == KeyEncryptionDecrypt) ? kCCDecrypt : kCCEncrypt, kCCAlgorithmCAST, 0, keyBuff, keySize, initVector, decryptData, decryptSize, buffer,

是否有支持Metro/WinRT强制转换加密的.NET API?与iOS上的CommonCrypto调用相当的东西:

CCCrypt((mode == KeyEncryptionDecrypt) ? kCCDecrypt : kCCEncrypt, kCCAlgorithmCAST, 0,
          keyBuff, keySize,
          initVector,
          decryptData, decryptSize,
          buffer, bufferSize,
          dataOutSize);
通过阅读Windows8的文档,我看不到对CAST的支持。我使用OpenSSL(我可以从C++的CyraseMetro应用程序调用C++)进行了研究,但是OpenSSL库从它的随机化函数中生成了一些桌面API调用,因此它不会在Metro下链接。有没有办法使用我的C#Metro应用程序中的强制转换加密功能?

试试。检查功能列表


有一个WinRT兼容版本的BouncyCastle,链接由dbeachy1提供。

感谢您提供的信息。我发现了与WinRT兼容的BouncyCastle版本。你能看到它与普通C#代码和构建有什么不同吗?它的文档记录得相当糟糕(请阅读,它并没有真正的文档记录)。快速扫描显示了一个相当完整的BC和一些用于非对称密钥生成的帮助器类(您可能希望扫描这些类)。此外,它还包含gzip支持,是从Apache许可代码(而不是MIT)复制的。否则,它只包含必要的文件来帮助构建WinRT库。