You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by mi...@apache.org on 2005/05/09 16:07:31 UTC
cvs commit: xml-security/c/src/enc/WinCAPI WinCAPICryptoX509.cpp WinCAPICryptoX509.hpp
milan 2005/05/09 07:07:31
Modified: c/src/enc/WinCAPI WinCAPICryptoX509.cpp
WinCAPICryptoX509.hpp
Log:
New constructor added.
Revision Changes Path
1.8 +30 -1 xml-security/c/src/enc/WinCAPI/WinCAPICryptoX509.cpp
Index: WinCAPICryptoX509.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/enc/WinCAPI/WinCAPICryptoX509.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WinCAPICryptoX509.cpp 3 Feb 2005 13:20:37 -0000 1.7
+++ WinCAPICryptoX509.cpp 9 May 2005 14:07:31 -0000 1.8
@@ -44,6 +44,35 @@
}
+WinCAPICryptoX509::WinCAPICryptoX509(PCCERT_CONTEXT pCertContext) {
+
+ // Build this from an existing PCCERT_CONTEXT structure
+
+ mp_certContext = pCertContext;
+
+ unsigned char * encCert;
+ unsigned long len = mp_certContext->cbCertEncoded * 2;
+ XSECnew(encCert, unsigned char [len]);
+ ArrayJanitor<unsigned char> j_encCert(encCert);
+
+ // Base64 Encode
+ XSCryptCryptoBase64 b64;
+
+ b64.encodeInit();
+ unsigned long encCertLen = b64.encode(mp_certContext->pbCertEncoded, mp_certContext->cbCertEncoded, encCert, len);
+ encCertLen += b64.encodeFinish(&encCert[encCertLen], len - encCertLen);
+
+ // Check the result
+ if (encCert == NULL) {
+ throw XSECCryptoException(XSECCryptoException::X509Error,
+ "WinCAPIX509:WinCAPIX509 - Error encoding certificate");
+ }
+
+ m_DERX509.sbMemcpyIn(encCert, encCertLen);
+ m_DERX509[encCertLen] = '\0';
+
+}
+
WinCAPICryptoX509::~WinCAPICryptoX509() {
if (mp_certContext != NULL)
1.9 +10 -1 xml-security/c/src/enc/WinCAPI/WinCAPICryptoX509.hpp
Index: WinCAPICryptoX509.hpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/enc/WinCAPI/WinCAPICryptoX509.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WinCAPICryptoX509.hpp 3 Feb 2005 13:20:37 -0000 1.8
+++ WinCAPICryptoX509.hpp 9 May 2005 14:07:31 -0000 1.9
@@ -64,6 +64,15 @@
*/
WinCAPICryptoX509(HCRYPTPROV provRSA, HCRYPTPROV provDSS);
+
+ /**
+ * \brief Constructor for X509 objects
+ *
+ * @param pCertContext A certificate handle
+ */
+
+ WinCAPICryptoX509(PCCERT_CONTEXT pCertContext);
+
virtual ~WinCAPICryptoX509();
//@}