Crypto++  8.2
Free C++ class library of cryptographic schemes
Public Member Functions | Friends | List of all members
OID Class Reference

Object Identifier. More...

Public Member Functions

 OID ()
 Construct an OID.
 
 OID (word32 v)
 Construct an OID. More...
 
 OID (BufferedTransformation &bt)
 Construct an OID. More...
 
OIDoperator+= (word32 rhs)
 Append a value to an OID. More...
 
void DEREncode (BufferedTransformation &bt) const
 DER encode this OID. More...
 
void BERDecode (BufferedTransformation &bt)
 BER decode an OID. More...
 
void BERDecodeAndCheck (BufferedTransformation &bt) const
 BER decode an OID. More...
 
bool Empty () const
 Determine if OID is empty. More...
 
const std::vector< word32 > & GetValues () const
 Retrieve OID value array. More...
 
std::ostream & Print (std::ostream &out) const
 Print an OID. More...
 

Friends

bool operator== (const OID &lhs, const OID &rhs)
 Compare two OIDs for equality. More...
 
bool operator!= (const OID &lhs, const OID &rhs)
 Compare two OIDs for inequality. More...
 
bool operator< (const OID &lhs, const OID &rhs)
 Compare two OIDs for ordering. More...
 
bool operator<= (const OID &lhs, const OID &rhs)
 Compare two OIDs for ordering. More...
 
bool operator>= (const OID &lhs, const OID &rhs)
 Compare two OIDs for ordering. More...
 

Detailed Description

Object Identifier.

Definition at line 264 of file asn.h.

Constructor & Destructor Documentation

◆ OID() [1/2]

OID::OID ( word32  v)
inline

Construct an OID.

Parameters
vvalue to initialize the OID

Definition at line 274 of file asn.h.

◆ OID() [2/2]

OID::OID ( BufferedTransformation bt)
inline

Construct an OID.

Parameters
btBufferedTransformation object

Definition at line 278 of file asn.h.

Member Function Documentation

◆ operator+=()

OID& OID::operator+= ( word32  rhs)
inline

Append a value to an OID.

Parameters
rhsthe value to append

Definition at line 284 of file asn.h.

◆ DEREncode()

void OID::DEREncode ( BufferedTransformation bt) const

DER encode this OID.

Parameters
btBufferedTransformation object

Definition at line 333 of file asn.cpp.

◆ BERDecode()

void OID::BERDecode ( BufferedTransformation bt)

BER decode an OID.

Parameters
btBufferedTransformation object

Definition at line 345 of file asn.cpp.

◆ BERDecodeAndCheck()

void OID::BERDecodeAndCheck ( BufferedTransformation bt) const

BER decode an OID.

Parameters
btBufferedTransformation object
Exceptions
BERDecodeErr()if decoded value doesn't match an expected OID

BERDecodeAndCheck() can be used to parse an OID and verify it matches an expected.

  BERSequenceDecoder key(bt);
  ...
  BERSequenceDecoder algorithm(key);
  GetAlgorithmID().BERDecodeAndCheck(algorithm);

Definition at line 374 of file asn.cpp.

◆ Empty()

bool OID::Empty ( ) const
inline

Determine if OID is empty.

Returns
true if OID has 0 elements, false otherwise
Since
Crypto++ 8.0

Definition at line 311 of file asn.h.

◆ GetValues()

const std::vector<word32>& OID::GetValues ( ) const
inline

Retrieve OID value array.

Returns
OID value vector
Since
Crypto++ 8.0

Definition at line 318 of file asn.h.

◆ Print()

std::ostream & OID::Print ( std::ostream &  out) const

Print an OID.

Parameters
outostream object
Returns
ostream reference

Print() writes the OID in a customary format, like 1.2.840.113549.1.1.11. The caller is reposnsible to convert the OID to a friendly name, like sha256WithRSAEncryption.

Since
Crypto++ 8.3

Definition at line 381 of file asn.cpp.

Friends And Related Function Documentation

◆ operator==

bool operator== ( const OID lhs,
const OID rhs 
)
friend

Compare two OIDs for equality.

Parameters
lhsthe first OID
rhsthe second OID
Returns
true if the OIDs are equal, false otherwise

◆ operator!=

bool operator!= ( const OID lhs,
const OID rhs 
)
friend

Compare two OIDs for inequality.

Parameters
lhsthe first OID
rhsthe second OID
Returns
true if the OIDs are not equal, false otherwise

◆ operator<

bool operator< ( const OID lhs,
const OID rhs 
)
friend

Compare two OIDs for ordering.

Parameters
lhsthe first OID
rhsthe second OID
Returns
true if the first OID is less than the second OID, false otherwise

operator<() calls std::lexicographical_compare() on each element in the array of values.

◆ operator<=

bool operator<= ( const OID lhs,
const OID rhs 
)
friend

Compare two OIDs for ordering.

Parameters
lhsthe first OID
rhsthe second OID
Returns
true if the first OID is less than or equal to the second OID, false otherwise

operator<=() is implemented in terms of operator==() and operator<().

Since
Crypto++ 8.3

◆ operator>=

bool operator>= ( const OID lhs,
const OID rhs 
)
friend

Compare two OIDs for ordering.

Parameters
lhsthe first OID
rhsthe second OID
Returns
true if the first OID is greater than or equal to the second OID, false otherwise

operator>=() is implemented in terms of operator<().

Since
Crypto++ 8.3

The documentation for this class was generated from the following files: