Tag: private key

在x509certificate2中清空PrivateKey

我已使用私钥在本地计算机商店(win7)上安装了证书。 在c#代码中我这样做: X509Certificate2 cert = null; var store = new X509Store(storeName, storeLocation); store.Open(OpenFlags.ReadOnly); try { var result = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; cert = result.Count > 0 ? result[0] : null; } finally { store.Close(); } return cert; 在cert变量中,我有我的证书但是它有问题:HasPrivateKey是真的但是PrivateKey没有任何对象。 如果我使用我的Web应用程序的C#代码中的REST请求发送它我有错误: AcquireCredentialsHandle() failed with […]

如何在WPF C#app中安全地部署PPK文件?

我有一个连接到SFTP服务器的C#应用​​程序来传输日志文件。 该应用程序通过使用WinSCP .NET程序集连接到服务器来实现此目的。 如何安全地存储.ppk私钥文件,以便用户无法使用此文件自行访问SFTP? http://winscp.net/eng/docs/library#csharp 根据库引用.ppk ,可能无法避免在运行时将.ppk文件存储在本地磁盘上? 提前致谢。

如何将存储在HSM中的私钥转换为C#中的SignedXml.SigningKey

我正在尝试使用存储在HSM中的证书来实现XML签名的一些演示。 我在这个链接中找到了一个有趣的例子: 使用X509Certificate2签署XML文档并使用PKCS11Interop包装器将其修改为使用HSM内部的证书和密钥。 但任何人都可以给我一个建议或示例, 将ObjectHandle privateKey从HSM转换为SignedXML.SigningKey private static void SignXmlWithCertificate(XmlDocument xmlDoc, X509Certificate2 cert, Session session, String alias) { SignedXml signedXml = new SignedXml(xmlDoc); List template = new List(); template.Add(new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY)); template.Add(new ObjectAttribute(CKA.CKA_KEY_TYPE, CKK.CKK_RSA)); template.Add(new ObjectAttribute(CKA.CKA_LABEL, alias)); List foundObjects = session.FindAllObjects(template); ObjectHandle privateKey = foundObjects[0]; signedXml.SigningKey = privateKey; //Here is where I stuck. 在上面的外部链接示例中。 他们使用组合私钥的证书。 […]

尝试从Windows certstore读取PrivateKey时出现exception

我使用OpenSSL创建了一个私钥和公钥对,然后我生成了一个.p12文件,将其导入我的Windows证书库。 密钥对和.p12文件是在Windows XP中创建的,我试图在Windows 7中使用它。我试图从IIS中的Web服务(.svc)中访问密钥。 如果我尝试从独立应用程序中读取私钥,我可以毫无问题地执行此操作,但是当我尝试从我的Web应用程序中读取它时,我总是会遇到以下exception: ‘cert.PrivateKey’ threw an exception of type ‘System.Security.Cryptography.CryptographicException’ 这是整个堆栈跟踪: en System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) en System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) en System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair() en System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize) en System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey() en ValidKeyDll.ValidKey.getLlaveDeAlmacen(String almacen, Boolean esLlavePrivada) en C:\Users\desarrollo\Documents\ValidKeyDll\ValidKeyDll\ValidKey.cs:línea 58 en ValidKeyDll.ValidKey.firmaCadena(String almacen, String cadenaFirmar) […]

使用带有RSA C#的非对称算法私钥和公钥

我有两个包含RSA Private和RSA公钥的AsymmetricAlgorithm对象。 从Windows-MY密钥库中检索私钥,从用户证书中检索公钥。 如何使用这些密钥和RSACryptoServiceProvider在C#中使用RSA算法加密数据? 换句话说,我如何指定我想使用已有的密钥?

如何在C#中使用公钥和私钥加密技术

我想使用公钥/私钥技术加密数据。 我的意思是,用接收器的公钥加密,接收器可以用自己的私钥解密。 我怎样才能做到这一点? 您有任何建议或示例代码吗?

如何在C#中解析(转换为RSAParameters)X.509私钥?

我正在使用加密通道来加密两个设备之间的通信。 所以我正在创建一个辅助类来进行加密和解密。 我已经google了很多,发现了一段可以将RSA公钥解析为RSACryptoServiceProvider的代码。 这是代码: public static RSACryptoServiceProvider DecodeX509PublicKey(byte[] x509key) { byte[] SeqOID = { 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00 }; byte[] seq = new byte[15]; MemoryStream mem = new MemoryStream(x509key); BinaryReader binr = new BinaryReader(mem); byte bt = 0; ushort twobytes = 0; try { […]

如何在C#中导入PKCS#8 RSA privateKey(由OpenSSL创建)

我试图找到一种方法来读取在C#中使用OpenSSL PKCS#8 RSA创建的privateKey,而无需使用外部库。 有人知道我怎么做吗?