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();
   
   	//@}