123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #ifndef __ccdb2BaseLib_h
- #define __ccdb2BaseLib_h
- //#include <windows.h>
- #include "SpBase.h"
- #include <openssl/rsa.h>
- struct SmartBuffer
- {
- unsigned char *pBuf;
- int nLen;
- inline bool IsNull() const
- {
- return pBuf==NULL;
- }
- SmartBuffer(const SmartBuffer &InBuf)
- {
- if(InBuf.IsNull())
- {
- pBuf=NULL;
- nLen=0;
- }
- else
- {
- pBuf=new unsigned char[InBuf.nLen];
- memcpy((void *)pBuf,(void *)InBuf.pBuf,InBuf.nLen);
- nLen=InBuf.nLen;
- }
- }
- SmartBuffer()
- {
- pBuf=NULL;
- nLen=0;
- }
- SmartBuffer(int nSize)
- {
- if(nSize<0)
- nSize=0;
- if(nSize==0)
- {
- pBuf=NULL;
- nLen=0;
- }
- else
- {
- pBuf=new unsigned char[nSize];
- memset(pBuf,0,nSize);
- nLen=nSize;
- }
- }
- SmartBuffer(const char *pInStr)
- {
- if(pInStr==NULL || strlen(pInStr)==0)
- {
- pBuf=NULL;
- nLen=0;
- }
- else
- {
- nLen=(int)strlen(pInStr)+1;
- pBuf=new unsigned char[nLen];
- memcpy(pBuf,pInStr,nLen);
- }
- }
- ~SmartBuffer()
- {
- if(pBuf)
- delete[] pBuf;
- }
- void SetSize(int nSize)
- {
- Clear();
- if(nSize<=0)
- return;
- pBuf=new unsigned char[nSize];
- memset(pBuf,0,nSize);
- nLen=nSize;
- }
- SmartBuffer &operator =(const SmartBuffer &InBuf)
- {
- if(InBuf.IsNull())
- {
- pBuf=NULL;
- nLen=0;
- }
- else
- {
- pBuf=new unsigned char[InBuf.nLen];
- memcpy(pBuf,InBuf.pBuf,InBuf.nLen);
- nLen=InBuf.nLen;
- }
- return *this;
- }
- void Clear()
- {
- if(pBuf)
- delete[] pBuf;
- nLen=0;
- }
- void Copy(const BYTE *InBuf,int nSize)
- {
- Clear();
- if(nSize<=0)
- return;
- pBuf=new unsigned char[nSize];
- memcpy(pBuf,InBuf,nSize);
- nLen=nSize;
- }
- void SetStr(const char *pInStr)
- {
- Clear();
- if(pInStr==NULL || strlen(pInStr)==0)
- return;
- nLen=(int)strlen(pInStr)+1;
- pBuf=new unsigned char[nLen];
- memcpy(pBuf,pInStr,nLen);
- }
- bool IsEqual(const SmartBuffer &Other)
- {
- if(nLen!=Other.nLen)
- return false;
- if(nLen!=0 && memcmp(pBuf,Other.pBuf,nLen)!=0)
- return false;
- return true;
- }
- };
- const char *ccGetErrStr();
- void ccSetErrorString(const char *szFormat,...);
- void ccClearErrorString();
- SmartBuffer ccHash(const BYTE *pInBuf,int nInSize);
- SmartBuffer ccPublicDecryptStream(RSA *pPublicKey,const BYTE *pInBuf,int nLen,SmartBuffer &Signer);
- RSA *ccD2I_RsaPublic(const BYTE *pBuf,int nLen);
- #endif
|