나는 그러나 그것이 생각만큼 쉽지 판명하지 않았다 C 번호에이 줄을로그인 파일을 사용하여 .NET의 OpenSSL이 래퍼
openssl smime -sign -signer <chain_crt_file> -in <infile> -out <outfile> -inkey <privatekey> -outform der
을 복사하려고했다. 지금까지 나는이 시점에만왔다.
OpenSSL.Core.BIO crtBio = OpenSSL.Core.BIO.File("C:/asl/chain.crt", "r");
OpenSSL.Core.BIO keyBio = OpenSSL.Core.BIO.File("C:/asl/keydec.txt", "r");
OpenSSL.X509.X509Chain crt = new OpenSSL.X509.X509Chain(crtBio);
OpenSSL.Crypto.RSA key = OpenSSL.Crypto.RSA.FromPrivateKey(keyBio);
String str = "test";
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
어디에서 (잘하면) 체인 인증서와 복호화 된 개인 키를 가져오고있다. 이제는 파일에 서명하고 내보내기가 DER입니다. OpenSSL.NET wrapper에는 인터넷에있는 문서와 예제가 없습니다. '공개/개인 키를 사용하여 메시지를 암호화하고 암호를 해독하는 방법'은 여기에 해당하지 않습니다.
시작하려면이 "테스트"문자열에 서명을 시도해야합니다 (파일을 안으로/밖으로 꽤 직선적이어야합니다). 그러나 시작할 수있는 단서가 없습니다.
내가 기호이 필요하므로이 키와 인증서 체인이 모두 필요합니다.
도움을 주셔서 감사합니다.
OpenSSL 래퍼가 필요합니까? 개인 키 및 [SignedCms .Net 클래스] (http://msdn.microsoft.com/ru-ru/library/yeth51c4 (v = vs.110) .aspx)를 사용하여 x509 인증서를 사용하여 모든 데이터에 서명 할 수 있습니다. 7.12 RSA 개인 키를 사용하여 데이터 서명 "http://etutorials.org? – oleksa
참조 해 주셔서 감사합니다. .NET Cryptography 클래스에서 완벽하게 지원되므로 사용자의 제안을 따르고 PKCS12 파일을 사용했을 때 분명히 래퍼가 필요하지 않았습니다. 내가 찾은 해결책은 매우 쉽습니다. http://stackoverflow.com/questions/11526572/openssl-smime-in-c-sharp?rq=1 – Mike