68 lines
1.8 KiB
C
68 lines
1.8 KiB
C
|
// pkiBEROctet.h - Interface to BEROctet class
|
||
|
//
|
||
|
// (c) Copyright Schlumberger Technology Corp., unpublished work, created
|
||
|
// 1999. This computer program includes Confidential, Proprietary
|
||
|
// Information and is a Trade Secret of Schlumberger Technology Corp. All
|
||
|
// use, disclosure, and/or reproduction is prohibited unless authorized
|
||
|
// in writing. All Rights Reserved.
|
||
|
/////////////////////////////////////////////////////////////////////////////////
|
||
|
#ifndef SLBPKI_BEROCTET_H
|
||
|
#define SLBPKI_BEROCTET_H
|
||
|
|
||
|
#if defined(WIN32)
|
||
|
#pragma warning(disable : 4786) // Suppress VC++ warnings
|
||
|
#endif
|
||
|
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
#include "pkiExc.h"
|
||
|
|
||
|
namespace pki {
|
||
|
|
||
|
class BEROctet
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
BEROctet();
|
||
|
BEROctet(const BEROctet &oct);
|
||
|
BEROctet(const unsigned char *buffer, const unsigned long length);
|
||
|
~BEROctet();
|
||
|
BEROctet& operator=(const BEROctet &oct);
|
||
|
|
||
|
unsigned char *Octet() const;
|
||
|
unsigned long OctetSize() const;
|
||
|
|
||
|
bool Constructed() const;
|
||
|
|
||
|
unsigned long Class() const;
|
||
|
unsigned long Tag() const;
|
||
|
unsigned char *Data() const;
|
||
|
unsigned long DataSize() const;
|
||
|
|
||
|
std::vector<BEROctet*> SubOctetList() const;
|
||
|
|
||
|
std::string ObjectID() const;
|
||
|
void SearchOID(std::string const &OID, std::vector<BEROctet const*> &result) const;
|
||
|
void SearchOIDNext(std::string const &OID, std::vector<BEROctet const*> &result) const;
|
||
|
|
||
|
private:
|
||
|
void Decode();
|
||
|
|
||
|
unsigned char *m_Octet; // Full octet buffer
|
||
|
unsigned long m_OctetSize; // Size of octet buffer
|
||
|
unsigned long m_Class;
|
||
|
unsigned long m_PrimConst;
|
||
|
unsigned long m_Tag;
|
||
|
unsigned char *m_Data; // Start of data part of octet
|
||
|
unsigned long m_DataSize; // Size of data part of octet as decoded from data.
|
||
|
std::vector<BEROctet*> m_SubOctetList;
|
||
|
|
||
|
};
|
||
|
|
||
|
} // namespace pki
|
||
|
|
||
|
#endif // SLBPKI_BEROCTET_H
|
||
|
|
||
|
|