6 #ifndef _INC_cASNReader_H
7 #define _INC_cASNReader_H
35 static HRESULT ReadStrUInt(
const char* pData,
size_t nSizeData, OUT UINT32& ruVal);
37 HRESULT ReadLengthCode(OUT
size_t& rSize);
38 HRESULT ReadTag(
ASN_t nTagExpected, OUT
size_t& rSizeData);
41 cASNReader(
const BYTE* p =
nullptr,
size_t nSize = 0) noexcept
49 , m_pInpCur(b.get_DataBytes())
54 static HRESULT ReadInt(
const BYTE* pData,
size_t nSizeData, OUT
int& riVal);
55 static HRESULT ReadTime(
const char* pData,
size_t nSizeData,
bool bGeneral, OUT
cTimeUnits& time);
59 SUPER_t::SetBlock(
const_cast<BYTE*
>(p), nSize);
66 ASSERT(m_pInpCur >= get_DataBytes());
67 return (
size_t)
cMem::Diff(m_pInpCur, get_DataBytes());
72 ASSERT(m_pInpCur <= get_DataEnd());
73 return (
size_t)
cMem::Diff(get_DataEnd(), m_pInpCur);
79 return m_pInpCur >= get_DataEnd();
84 return m_pInpCur == get_DataEnd();
95 return const_cast<BYTE*
>(m_pInpCur);
108 ASSERT(this->IsValidPtr2(m_pInpCur));
118 m_pInpCur = get_DataBytes();
127 HRESULT ReadTagBoolean(OUT
bool& rVal);
129 HRESULT ReadTagInt(OUT
int& riVal);
133 HRESULT ReadTagArrayBits0(OUT
size_t& rSizeData);
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cASNReader.h:22
const BYTE * get_InpCur() const noexcept
Definition: cASNReader.h:87
const BYTE * m_pInpCur
Current read position in cMemBlock. This Advances.
Definition: cASNReader.h:32
cASNReader(const cMemBlock &b) noexcept
Definition: cASNReader.h:47
cASNReader(const BYTE *p=nullptr, size_t nSize=0) noexcept
Definition: cASNReader.h:41
void SetBlock(const BYTE *p, size_t nSize)
Definition: cASNReader.h:57
size_t get_LenRead() const
Definition: cASNReader.h:63
void AddInpCur(cMemBlock &r)
Definition: cASNReader.h:110
bool isEOFX() const
Definition: cASNReader.h:81
void ResetReader()
Definition: cASNReader.h:115
BYTE get_InpByte() const
Definition: cASNReader.h:97
void AddInpCur(size_t nSize)
Definition: cASNReader.h:104
size_t get_LenLeft() const
Definition: cASNReader.h:69
bool isEOF() const
Definition: cASNReader.h:76
BYTE * get_InpUnk() const
Definition: cASNReader.h:92
Definition: cASNSequence.h:20
Definition: cASNSets.h:58
Definition: cBitArray.h:416
size_t get_DataSize() const noexcept
Definition: cMem.h:344
Definition: cTimeUnits.h:146
ASN_TYPE
Definition: cASN.h:22
BYTE ASN_t
Definition: cASN.h:75
static ptrdiff_t Diff(const void *pEnd, const void *pStart) noexcept
Definition: cMem.h:34