Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2003 Microsoft Corporation
Module Name:
xstring.h
Abstract:
Author:
Stephen A Sulzer (ssulzer) 16-Jan-2003
--*/
//
// class implementation of CSecureString
//
class CSecureStr { LPSTR _lpsz; int _stringLength; bool _fEncryptString; bool _fOwnString;
public:
CSecureStr() { _lpsz = NULL; _stringLength = 0; _fEncryptString = true; _fOwnString = true; }
CSecureStr(LPSTR lpszEncryptedString, int stringLength, bool fOwnString) { _lpsz = lpszEncryptedString; _stringLength = stringLength; _fEncryptString = true; _fOwnString = fOwnString; }
~CSecureStr() { Free(); }
void Free (void) { if (_lpsz && _fOwnString) { SecureZeroMemory(_lpsz, _stringLength); delete [] _lpsz; } _lpsz = NULL; _stringLength = 0; }
LPSTR GetPtr(void) { return _lpsz; }
DWORD GetStrLen() const // returns length of encrypted string
{ return _stringLength; }
LPSTR GetUnencryptedString(); // always allocates memory regardless of _fEncryptString
BOOL SetData(LPSTR lpszIn); };
|