Fabcoin Core
0.16.2
P2P Digital Currency
|
Classes and functions for working with ANS.1 objects. More...
#include "cryptlib.h"
#include "filters.h"
#include "smartptr.h"
#include "stdcpp.h"
#include "queue.h"
#include "misc.h"
Go to the source code of this file.
Classes | |
class | UnknownOID |
Exception thrown when an unknown object identifier is encountered. More... | |
class | OID |
Object Identifier. More... | |
class | EncodedObjectFilter |
ASN.1 encoded object filter. More... | |
class | BERGeneralDecoder |
BER General Decoder. More... | |
class | DERGeneralEncoder |
DER General Encoder. More... | |
class | BERSequenceDecoder |
BER Sequence Decoder. More... | |
class | DERSequenceEncoder |
DER Sequence Encoder. More... | |
class | BERSetDecoder |
BER Set Decoder. More... | |
class | DERSetEncoder |
DER Set Encoder. More... | |
class | ASNOptional< T > |
Optional data encoder and decoder. More... | |
class | ASN1CryptoMaterial< BASE > |
Encode and decode ASN.1 objects with additional information. More... | |
class | X509PublicKey |
Encodes and decodes subjectPublicKeyInfo. More... | |
class | PKCS8PrivateKey |
Encodes and decodesprivateKeyInfo. More... | |
Enumerations | |
enum | ASNTag { BOOLEAN = 0x01, INTEGER = 0x02, BIT_STRING = 0x03, OCTET_STRING = 0x04, TAG_NULL = 0x05, OBJECT_IDENTIFIER = 0x06, OBJECT_DESCRIPTOR = 0x07, EXTERNAL = 0x08, REAL = 0x09, ENUMERATED = 0x0a, UTF8_STRING = 0x0c, SEQUENCE = 0x10, SET = 0x11, NUMERIC_STRING = 0x12, PRINTABLE_STRING = 0x13, T61_STRING = 0x14, VIDEOTEXT_STRING = 0x15, IA5_STRING = 0x16, UTC_TIME = 0x17, GENERALIZED_TIME = 0x18, GRAPHIC_STRING = 0x19, VISIBLE_STRING = 0x1a, GENERAL_STRING = 0x1b } |
ASN.1 types. More... | |
enum | ASNIdFlag { UNIVERSAL = 0x00, PRIMITIVE = 0x00, CONSTRUCTED = 0x20, APPLICATION = 0x40, CONTEXT_SPECIFIC = 0x80, PRIVATE = 0xc0 } |
ASN.1 flags. More... | |
Functions | |
void | BERDecodeError () |
Raises a BERDecodeErr. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | DERLengthEncode (BufferedTransformation &bt, lword length) |
DER encode a length. More... | |
CRYPTOPP_DLL bool CRYPTOPP_API | BERLengthDecode (BufferedTransformation &bt, size_t &length) |
BER decode a length. More... | |
CRYPTOPP_DLL void CRYPTOPP_API | DEREncodeNull (BufferedTransformation &bt) |
DER encode NULL. More... | |
CRYPTOPP_DLL void CRYPTOPP_API | BERDecodeNull (BufferedTransformation &bt) |
BER decode NULL. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeOctetString (BufferedTransformation &bt, const byte *str, size_t strLen) |
DER encode octet string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeOctetString (BufferedTransformation &bt, const SecByteBlock &str) |
DER encode octet string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeOctetString (BufferedTransformation &bt, SecByteBlock &str) |
BER decode octet string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeOctetString (BufferedTransformation &bt, BufferedTransformation &str) |
BER decode octet string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeTextString (BufferedTransformation &bt, const std::string &str, byte asnTag) |
DER encode text string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeTextString (BufferedTransformation &bt, std::string &str, byte asnTag) |
BER decode text string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeBitString (BufferedTransformation &bt, const byte *str, size_t strLen, unsigned int unusedBits=0) |
DER encode bit string. More... | |
CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeBitString (BufferedTransformation &bt, SecByteBlock &str, unsigned int &unusedBits) |
DER decode bit string. More... | |
CRYPTOPP_DLL void CRYPTOPP_API | DERReencode (BufferedTransformation &bt, BufferedTransformation &dest) |
BER decode and DER re-encode. More... | |
template<class T > | |
size_t | DEREncodeUnsigned (BufferedTransformation &out, T w, byte asnTag=INTEGER) |
DER Encode unsigned value. More... | |
template<class T > | |
void | BERDecodeUnsigned (BufferedTransformation &in, T &w, byte asnTag=INTEGER, T minValue=0, T maxValue=T(0xffffffff)) |
BER Decode unsigned value. More... | |
bool | operator== (const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) |
bool | operator!= (const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) |
bool | operator< (const ::CryptoPP::OID &lhs, const ::CryptoPP::OID &rhs) |
inline::CryptoPP::OID | operator+ (const ::CryptoPP::OID &lhs, unsigned long rhs) |
Classes and functions for working with ANS.1 objects.
Definition in file asn.h.
enum ASNIdFlag |
enum ASNTag |
ASN.1 types.
CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeBitString | ( | BufferedTransformation & | bt, |
SecByteBlock & | str, | ||
unsigned int & | unusedBits | ||
) |
DER decode bit string.
bt | BufferedTransformation object for reading |
str | the decoded string |
unusedBits | the number of unused bits |
Definition at line 188 of file asn.cpp.
|
inline |
Raises a BERDecodeErr.
Definition at line 69 of file asn.h.
CRYPTOPP_DLL void CRYPTOPP_API BERDecodeNull | ( | BufferedTransformation & | bt | ) |
BER decode NULL.
bt | BufferedTransformation object for reading |
Definition at line 93 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeOctetString | ( | BufferedTransformation & | bt, |
SecByteBlock & | str | ||
) |
BER decode octet string.
bt | BufferedTransformation object for reading |
str | the decoded string |
Definition at line 117 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeOctetString | ( | BufferedTransformation & | bt, |
BufferedTransformation & | str | ||
) |
BER decode octet string.
bt | BufferedTransformation object for reading |
str | the decoded string |
Definition at line 135 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeTextString | ( | BufferedTransformation & | bt, |
std::string & | str, | ||
byte | asnTag | ||
) |
BER decode text string.
bt | BufferedTransformation object for reading |
str | the string to encode |
asnTag | the ASN.1 type |
DEREncodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
Definition at line 159 of file asn.cpp.
void BERDecodeUnsigned | ( | BufferedTransformation & | in, |
T & | w, | ||
byte | asnTag = INTEGER , |
||
T | minValue = 0 , |
||
T | maxValue = T(0xffffffff) |
||
) |
BER Decode unsigned value.
T | fundamental C++ type |
in | BufferedTransformation object |
w | the decoded value |
asnTag | the ASN.1 type |
minValue | the minimum expected value |
maxValue | the maximum expected value |
BERDecodeErr() | if the value cannot be parsed or the decoded value is not within range. |
DEREncodeUnsigned() can be used with INTEGER, BOOLEAN, and ENUM
Definition at line 491 of file asn.h.
CRYPTOPP_DLL bool CRYPTOPP_API BERLengthDecode | ( | BufferedTransformation & | bt, |
size_t & | length | ||
) |
BER decode a length.
bt | BufferedTransformation object for reading |
length | the decoded size |
BERDecodeError | if the value fails to decode or is too large for size_t |
BERLengthDecode() returns false if the encoding is indefinite length.
Definition at line 76 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeBitString | ( | BufferedTransformation & | bt, |
const byte * | str, | ||
size_t | strLen, | ||
unsigned int | unusedBits | ||
) |
DER encode bit string.
bt | BufferedTransformation object for writing |
str | the string to encode |
strLen | the length of the string |
unusedBits | the number of unused bits |
DER encode bit string.
Definition at line 179 of file asn.cpp.
CRYPTOPP_DLL void CRYPTOPP_API DEREncodeNull | ( | BufferedTransformation & | bt | ) |
DER encode NULL.
bt | BufferedTransformation object for writing |
Definition at line 87 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeOctetString | ( | BufferedTransformation & | bt, |
const byte * | str, | ||
size_t | strLen | ||
) |
DER encode octet string.
bt | BufferedTransformation object for writing |
str | the string to encode |
strLen | the length of the string |
DER encode octet string.
Definition at line 104 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeOctetString | ( | BufferedTransformation & | bt, |
const SecByteBlock & | str | ||
) |
DER encode octet string.
bt | BufferedTransformation object for reading |
str | the string to encode |
Definition at line 112 of file asn.cpp.
CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeTextString | ( | BufferedTransformation & | bt, |
const std::string & | str, | ||
byte | asnTag | ||
) |
DER encode text string.
bt | BufferedTransformation object for writing |
str | the string to encode |
asnTag | the ASN.1 type |
DEREncodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
Definition at line 151 of file asn.cpp.
size_t DEREncodeUnsigned | ( | BufferedTransformation & | out, |
T | w, | ||
byte | asnTag = INTEGER |
||
) |
DER Encode unsigned value.
T | class or type |
out | BufferedTransformation object |
w | unsigned value to encode |
asnTag | the ASN.1 type |
DEREncodeUnsigned() can be used with INTEGER, BOOLEAN, and ENUM
Definition at line 455 of file asn.h.
CRYPTOPP_DLL size_t CRYPTOPP_API DERLengthEncode | ( | BufferedTransformation & | bt, |
lword | length | ||
) |
DER encode a length.
bt | BufferedTransformation object for writing |
length | the size to encode |
DER encode a length.
Definition at line 17 of file asn.cpp.
CRYPTOPP_DLL void CRYPTOPP_API DERReencode | ( | BufferedTransformation & | bt, |
BufferedTransformation & | dest | ||
) |
BER decode and DER re-encode.
bt | BufferedTransformation object for writing |
dest | BufferedTransformation object |
Definition at line 213 of file asn.cpp.
|
inline |
inline ::CryptoPP::OID operator+ | ( | const ::CryptoPP::OID & | lhs, |
unsigned long | rhs | ||
) |
|
inline |