Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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
C# OpenSSL.NET如何实现PKCS7?_C#_Encryption_Cryptography_Openssl - Fatal编程技术网

C# OpenSSL.NET如何实现PKCS7?

C# OpenSSL.NET如何实现PKCS7?,c#,encryption,cryptography,openssl,C#,Encryption,Cryptography,Openssl,我正在编写一个应用程序,其中我需要加密、签名并将一些内容包装到PKCS7/CMS结构中。我正在使用.NET的任务包装器 我还没有很多,我已经成功地加密了一些数据,但是 RSA toServer = cert.Certificate.PublicKey.GetRSA(); RSA fromClient = cert.Certificate.PublicKey.GetRSA(); byte[] cipherText = toServer.PublicEncrypt(Encoding.UTF8.Ge

我正在编写一个应用程序,其中我需要加密、签名并将一些内容包装到PKCS7/CMS结构中。我正在使用.NET的任务包装器

我还没有很多,我已经成功地加密了一些数据,但是

RSA toServer = cert.Certificate.PublicKey.GetRSA();
RSA fromClient = cert.Certificate.PublicKey.GetRSA();

byte[] cipherText = toServer.PublicEncrypt(Encoding.UTF8.GetBytes("Hello World!"), RSA.Padding.PKCS1);                
byte[] plainText = fromClient.PrivateDecrypt(cipherText, RSA.Padding.PKCS1);
这是可行的,它成功地加密和解密了数据,但现在我想进一步实现PKCS7/CMS,这样我就有了一个标准的消息格式。我发现下面的对象似乎指向正确的方向,但我找不到有关如何使用它的文档:

OpenSSL.X509.PKCS7 p7 = new OpenSSL.X509.PKCS7( ? );

欢迎对文档提出任何建议或参考。

您知道OpenSSL.Net是如何实现的吗,例如,STACK_OF?例如,X509*证书的堆栈?无论如何,这是OpenSSL的文档。OpenSSL的文档有点糟糕。您可以看到openssl pkcs7是如何。。。工作原理是检查/apps/pkcs7.c中的源代码,下面是来自OpenSSL.Net的PKCS 7 gear:的源文件。看起来STACK_OF是一个IntPtr。我非常感谢你的提示,我会研究一下,看看我是否能够破解如何使用OpenSSL.NET实现这一点,我想我需要使用Core.STACK,我已经看过C API,它们看起来很简单,但我仍然对如何继续使用.NET包装器感到困惑://www.jensolsson.se如果您找到了解决方案,您能分享吗?谢谢