//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1996 - 1999 // // File: CryptAttr.cpp // // History: 31-Mar-1997 pberkman created // //-------------------------------------------------------------------------- #include "global.hxx" #include "CryptAttr.hxx" CryptAttribute_::CryptAttribute_(void) { sAttribute.pszObjId = NULL; sAttribute.Value.pbData = NULL; } CryptAttribute_::~CryptAttribute_(void) { DELETE_OBJECT(sAttribute.pszObjId); DELETE_OBJECT(sAttribute.rgValue->pbData); } BOOL CryptAttribute_::Fill(DWORD cbAttributeData, BYTE *pbAttributeData, char *pszObjId) { DELETE_OBJECT(sAttribute.pszObjId); DELETE_OBJECT(sAttribute.Value.pbData); sAttribute.pszObjId = new char[strlen(pszObjId) + 1]; strcpy(&sAttribute.pszObjId[0], pszObjId); if (CryptEncodeObject( X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pszObjId, sAttribute.Value.pbData = new BYTE[cbAttributeData]; sAttribute.Value.cbData = cbAttributeData; memcpy(&sAttribute.Value.pbData, pbAttributeData, cbAttributeData); return(TRUE); }