|
Security Scol plugin
|
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"#include <iosfwd>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 Decodes privateKeyInfo. 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 , UNIVERSAL_STRING = 0x1c , BMP_STRING = 0x1e } |
| 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. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DERLengthEncode (BufferedTransformation &bt, lword length) |
| DER encode a length. | |
| CRYPTOPP_DLL bool CRYPTOPP_API | BERLengthDecode (BufferedTransformation &bt, size_t &length) |
| BER decode a length. | |
| CRYPTOPP_DLL void CRYPTOPP_API | DEREncodeNull (BufferedTransformation &bt) |
| DER encode NULL. | |
| CRYPTOPP_DLL void CRYPTOPP_API | BERDecodeNull (BufferedTransformation &bt) |
| BER decode NULL. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeOctetString (BufferedTransformation &bt, const byte *str, size_t strLen) |
| DER encode octet string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeOctetString (BufferedTransformation &bt, const SecByteBlock &str) |
| DER encode octet string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeOctetString (BufferedTransformation &bt, SecByteBlock &str) |
| BER decode octet string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeOctetString (BufferedTransformation &bt, BufferedTransformation &str) |
| BER decode octet string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeTextString (BufferedTransformation &bt, const byte *str, size_t strLen, byte asnTag) |
| DER encode text string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeTextString (BufferedTransformation &bt, const SecByteBlock &str, byte asnTag) |
| DER encode text string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeTextString (BufferedTransformation &bt, const std::string &str, byte asnTag) |
| DER encode text string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeTextString (BufferedTransformation &bt, SecByteBlock &str, byte asnTag) |
| BER decode text string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeTextString (BufferedTransformation &bt, std::string &str, byte asnTag) |
| BER decode text string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeDate (BufferedTransformation &bt, const SecByteBlock &str, byte asnTag) |
| DER encode date. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeDate (BufferedTransformation &bt, SecByteBlock &str, byte asnTag) |
| BER decode date. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | DEREncodeBitString (BufferedTransformation &bt, const byte *str, size_t strLen, unsigned int unusedBits=0) |
| DER encode bit string. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodeBitString (BufferedTransformation &bt, SecByteBlock &str, unsigned int &unusedBits) |
| DER decode bit string. | |
| CRYPTOPP_DLL void CRYPTOPP_API | DERReencode (BufferedTransformation &bt, BufferedTransformation &dest) |
| BER decode and DER re-encode. | |
| CRYPTOPP_DLL size_t CRYPTOPP_API | BERDecodePeekLength (const BufferedTransformation &bt) |
| BER decode size. | |
| template<class T > | |
| size_t | DEREncodeUnsigned (BufferedTransformation &out, T w, byte asnTag=INTEGER) |
| DER Encode unsigned value. | |
| template<class T > | |
| void | BERDecodeUnsigned (BufferedTransformation &in, T &w, byte asnTag=INTEGER, T minValue=0, T maxValue=T(0xffffffff)) |
| BER Decode unsigned value. | |
| 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) |
| 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) |
| std::ostream & | operator<< (std::ostream &out, const OID &oid) |
Classes and functions for working with ANS.1 objects.
Definition in file asn.h.
| enum ASNIdFlag |
| enum ASNTag |
ASN.1 types.
| Enumerator | |
|---|---|
| BOOLEAN | ASN.1 Boolean. |
| INTEGER | ASN.1 Integer. |
| BIT_STRING | ASN.1 Bit string. |
| OCTET_STRING | ASN.1 Octet string. |
| TAG_NULL | ASN.1 Null. |
| OBJECT_IDENTIFIER | ASN.1 Object identifier. |
| OBJECT_DESCRIPTOR | ASN.1 Object descriptor. |
| EXTERNAL | ASN.1 External reference. |
| REAL | ASN.1 Real integer. |
| ENUMERATED | ASN.1 Enumerated value. |
| UTF8_STRING | ASN.1 UTF-8 string. |
| SEQUENCE | ASN.1 Sequence. |
| SET | ASN.1 Set. |
| NUMERIC_STRING | ASN.1 Numeric string. |
| PRINTABLE_STRING | ASN.1 Printable string. |
| T61_STRING | ASN.1 T61 string. |
| VIDEOTEXT_STRING | ASN.1 Videotext string. |
| IA5_STRING | ASN.1 IA5 string. |
| UTC_TIME | ASN.1 UTC time. |
| GENERALIZED_TIME | ASN.1 Generalized time. |
| GRAPHIC_STRING | ASN.1 Graphic string. |
| VISIBLE_STRING | ASN.1 Visible string. |
| GENERAL_STRING | ASN.1 General string. |
| UNIVERSAL_STRING | ASN.1 Universal string. |
| BMP_STRING | ASN.1 BMP string. |
| 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 |
The caller is responsible for shifting octets if unusedBits is not 0. For example, to DER encode a web server X.509 key usage, the 101b bit mask is often used (digitalSignature and keyEncipherment). In this case str is one octet with a value=0xa0 and unusedBits=5. The value 0xa0 is 101b << 5.
| CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeDate | ( | BufferedTransformation & | bt, |
| SecByteBlock & | str, | ||
| byte | asnTag | ||
| ) |
BER decode date.
| bt | BufferedTransformation object for reading |
| str | the date to decode |
| asnTag | the ASN.1 identifier |
BERDecodeDate() can be used for UTC_TIME and GENERALIZED_TIME
|
inline |
Raises a BERDecodeErr.
| CRYPTOPP_DLL void CRYPTOPP_API BERDecodeNull | ( | BufferedTransformation & | bt | ) |
BER decode NULL.
| bt | BufferedTransformation object for reading |
| CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeOctetString | ( | BufferedTransformation & | bt, |
| BufferedTransformation & | str | ||
| ) |
BER decode octet string.
| bt | BufferedTransformation object for reading |
| str | the decoded string |
| CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeOctetString | ( | BufferedTransformation & | bt, |
| SecByteBlock & | str | ||
| ) |
BER decode octet string.
| bt | BufferedTransformation object for reading |
| str | the decoded string |
| CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodePeekLength | ( | const BufferedTransformation & | bt | ) |
BER decode size.
| bt | BufferedTransformation object for reading |
BERDecodePeekLength() determines the length of a value without consuming octets in the stream. The stream must use definite length encoding. If indefinite length encoding is used or an error occurs, then 0 is returned.
| CRYPTOPP_DLL size_t CRYPTOPP_API BERDecodeTextString | ( | BufferedTransformation & | bt, |
| SecByteBlock & | str, | ||
| byte | asnTag | ||
| ) |
BER decode text string.
| bt | BufferedTransformation object for reading |
| str | the string to decode |
| asnTag | the ASN.1 identifier |
BERDecodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
| 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 decode |
| asnTag | the ASN.1 identifier |
BERDecodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
| 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 identifier |
| 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
| 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.
| CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeBitString | ( | BufferedTransformation & | bt, |
| const byte * | str, | ||
| size_t | strLen, | ||
| unsigned int | unusedBits = 0 |
||
| ) |
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 |
The caller is responsible for shifting octets if unusedBits is not 0. For example, to DER encode a web server X.509 key usage, the 101b bit mask is often used (digitalSignature and keyEncipherment). In this case str is one octet with a value=0xa0 and unusedBits=5. The value 0xa0 is 101b << 5.
| CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeDate | ( | BufferedTransformation & | bt, |
| const SecByteBlock & | str, | ||
| byte | asnTag | ||
| ) |
DER encode date.
| bt | BufferedTransformation object for writing |
| str | the date to encode |
| asnTag | the ASN.1 identifier |
BERDecodeDate() can be used for UTC_TIME and GENERALIZED_TIME
| CRYPTOPP_DLL void CRYPTOPP_API DEREncodeNull | ( | BufferedTransformation & | bt | ) |
DER encode NULL.
| bt | BufferedTransformation object for writing |
| 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.
| 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 |
| CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeTextString | ( | BufferedTransformation & | bt, |
| const byte * | str, | ||
| size_t | strLen, | ||
| byte | asnTag | ||
| ) |
DER encode text string.
| bt | BufferedTransformation object for writing |
| str | the string to encode |
| strLen | the length of the string, in bytes |
| asnTag | the ASN.1 identifier |
DEREncodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
| CRYPTOPP_DLL size_t CRYPTOPP_API DEREncodeTextString | ( | BufferedTransformation & | bt, |
| const SecByteBlock & | str, | ||
| byte | asnTag | ||
| ) |
DER encode text string.
| bt | BufferedTransformation object for writing |
| str | the string to encode |
| asnTag | the ASN.1 identifier |
DEREncodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
| 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 identifier |
DEREncodeTextString() can be used for UTF8_STRING, PRINTABLE_STRING, and IA5_STRING
| 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 identifier |
DEREncodeUnsigned() can be used with INTEGER, BOOLEAN, and ENUM
| 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 |
| CRYPTOPP_DLL void CRYPTOPP_API DERReencode | ( | BufferedTransformation & | bt, |
| BufferedTransformation & | dest | ||
| ) |
BER decode and DER re-encode.
| bt | BufferedTransformation object for writing |
| dest | BufferedTransformation object |
|
inline |
| inline ::CryptoPP::OID operator+ | ( | const ::CryptoPP::OID & | lhs, |
| unsigned long | rhs | ||
| ) |
|
inline |
|
inline |
|
inline |
|
inline |