[Box Backup-commit] COMMIT r2791 - box/invisnet/vs2010/0.11/lib/server

subversion at boxbackup.org subversion at boxbackup.org
Sat Oct 16 18:31:20 BST 2010


Author: invisnet
Date: 2010-10-16 18:31:19 +0100 (Sat, 16 Oct 2010)
New Revision: 2791

Modified:
   box/invisnet/vs2010/0.11/lib/server/TLSContext.cpp
Log:
Associate the certificate and the private key

Modified: box/invisnet/vs2010/0.11/lib/server/TLSContext.cpp
===================================================================
--- box/invisnet/vs2010/0.11/lib/server/TLSContext.cpp	2010-10-11 23:28:19 UTC (rev 2790)
+++ box/invisnet/vs2010/0.11/lib/server/TLSContext.cpp	2010-10-16 17:31:19 UTC (rev 2791)
@@ -213,7 +213,7 @@
 			{
 				HCERTSTORE  hSystemStore;
 
-				if (NULL == (hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE | CERT_STORE_READONLY_FLAG, L"MY")))
+				if (NULL == (hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY")))
 				{
 					BOX_ERROR("Failed to open store");
 				}
@@ -231,6 +231,25 @@
 
 						x509 = d2i_X509(NULL, &pbCertEncoded, pDesiredCert->cbCertEncoded);
 
+						DWORD pcbData = 0;
+						if (CertGetCertificateContextProperty(pDesiredCert,CERT_KEY_PROV_INFO_PROP_ID,NULL,&pcbData))
+						{
+							BOX_TRACE("Certificate has associated Private Key");
+						}
+						else
+						{
+							CRYPT_KEY_PROV_INFO cryptKeyProvInfo = { L"BoxBackup",MS_DEF_PROV_W,PROV_RSA_FULL,CRYPT_MACHINE_KEYSET,0,NULL,AT_SIGNATURE };
+
+							if (!CertSetCertificateContextProperty(pDesiredCert,CERT_KEY_PROV_INFO_PROP_ID,0,&cryptKeyProvInfo))
+							{
+								BOX_ERROR("SetCertProp failed");
+							}
+							else
+							{
+								BOX_INFO("Associated Private Key with certificate");
+							}
+						}
+
 						CertFreeCertificateContext(pDesiredCert);
 					}
 




More information about the Boxbackup-commit mailing list