#include <freeradius-devel/build.h>
#include <freeradius-devel/util/dict.h>
#include <freeradius-devel/util/value.h>
Go to the source code of this file.
|
enum | fr_der_tag_class_t {
FR_DER_CLASS_UNIVERSAL = 0x00
,
FR_DER_CLASS_APPLICATION = 0x40
,
FR_DER_CLASS_CONTEXT = 0x80
,
FR_DER_CLASS_PRIVATE = 0xC0
,
FR_DER_CLASS_INVALID = 0x04
} |
|
enum | fr_der_tag_constructed_t {
FR_DER_TAG_PRIMITIVE = 0x00
,
FR_DER_TAG_CONSTRUCTED = 0x20
} |
|
enum | fr_der_tag_t {
FR_DER_TAG_INVALID = 0x00
,
FR_DER_TAG_BOOLEAN = 0x01
,
FR_DER_TAG_INTEGER = 0x02
,
FR_DER_TAG_BITSTRING = 0x03
,
FR_DER_TAG_OCTETSTRING = 0x04
,
FR_DER_TAG_NULL = 0x05
,
FR_DER_TAG_OID = 0x06
,
FR_DER_TAG_ENUMERATED = 0x0a
,
FR_DER_TAG_UTF8_STRING = 0x0c
,
FR_DER_TAG_SEQUENCE = 0x10
,
FR_DER_TAG_SET = 0x11
,
FR_DER_TAG_PRINTABLE_STRING = 0x13
,
FR_DER_TAG_T61_STRING = 0x14
,
FR_DER_TAG_IA5_STRING = 0x16
,
FR_DER_TAG_UTC_TIME = 0x17
,
FR_DER_TAG_GENERALIZED_TIME = 0x18
,
FR_DER_TAG_VISIBLE_STRING = 0x1a
,
FR_DER_TAG_GENERAL_STRING = 0x1b
,
FR_DER_TAG_UNIVERSAL_STRING = 0x1c
,
FR_DER_TAG_BMP_STRING = 0x1e
,
FR_DER_TAG_CHOICE = 0x23
,
FR_DER_TAG_MAX = 0x24
} |
| Enumeration describing the data types in a DER encoded structure. More...
|
|
◆ fr_der_attr_flags_t
struct fr_der_attr_flags_t |
Definition at line 95 of file der.h.
Data Fields |
union fr_der_attr_flags_t.__unnamed192__ |
__unnamed__ |
|
fr_der_tag_class_t |
class |
tag Class |
fr_der_tag_t |
der_type |
the DER type, which is different from the FreeRADIUS type |
bool |
has_default_value: 1 |
a default value exists |
bool |
is_choice: 1 |
DER name "choice". |
bool |
is_extensions: 1 |
a list of X.509 extensions |
bool |
is_oid_and_value: 1 |
is OID+value |
bool |
is_oid_leaf: 1 |
|
bool |
is_option: 1 |
has an option defined |
bool |
is_sequence_of: 1 |
sequence_of has been defined |
bool |
is_set_of: 1 |
set_of has been defined |
uint64_t |
max |
maximum count of items in a sequence, set, or string. |
uint8_t |
min |
mininum count |
uint8_t |
option |
an "attribute number" encoded in the tag field. |
bool |
optional: 1 |
optional, we MUST already have set 'option' |
uint32_t |
restrictions |
for choice of options and tags - no dups allowed |
◆ fr_der_attr_flags_t.__unnamed192__
union fr_der_attr_flags_t.__unnamed192__ |
Definition at line 98 of file der.h.
◆ DER_BOOLEAN_FALSE
#define DER_BOOLEAN_FALSE 0x00 |
DER encoded boolean false value.
Definition at line 92 of file der.h.
◆ DER_BOOLEAN_TRUE
DER encoded boolean true value.
Definition at line 93 of file der.h.
◆ DER_GENERALIZED_TIME_LEN_MIN
#define DER_GENERALIZED_TIME_LEN_MIN 15 |
Minimum length of the generalized time string.
Definition at line 81 of file der.h.
◆ DER_GENERALIZED_TIME_PRECISION_MAX
#define DER_GENERALIZED_TIME_PRECISION_MAX 4 |
Maximum precision of the generalized time string.
Definition at line 82 of file der.h.
◆ DER_LEN_MULTI_BYTE
#define DER_LEN_MULTI_BYTE 0x80 |
Mask to check if the length is multi-byte.
Definition at line 90 of file der.h.
◆ DER_MAX_STR
Definition at line 78 of file der.h.
◆ DER_TAG_CLASS_MASK
#define DER_TAG_CLASS_MASK 0xc0 |
Mask to extract the class from the tag.
Definition at line 84 of file der.h.
◆ DER_TAG_CONSTRUCTED_MASK
#define DER_TAG_CONSTRUCTED_MASK 0x20 |
Mask to check if the tag is constructed.
Definition at line 85 of file der.h.
◆ DER_TAG_CONTINUATION
#define DER_TAG_CONTINUATION 0x1f |
Mask to check if the tag is a continuation.
Definition at line 88 of file der.h.
◆ DER_TAG_NUM_MASK
Mask to extract the tag number from the tag.
Definition at line 86 of file der.h.
◆ DER_UTC_TIME_LEN
Length of the UTC time string.
Definition at line 80 of file der.h.
◆ fr_der_flag_class
◆ fr_der_flag_der_type
◆ fr_der_flag_has_default_value
◆ fr_der_flag_is_choice
◆ fr_der_flag_is_extensions
◆ fr_der_flag_is_oid_and_value
◆ fr_der_flag_is_oid_leaf
◆ fr_der_flag_is_sequence_of
◆ fr_der_flag_is_set_of
◆ fr_der_flag_max
◆ fr_der_flag_option
◆ fr_der_flag_optional
◆ fr_der_flag_sequence_of
◆ fr_der_flag_set_of
◆ FR_DER_TAG_VALUE_MAX
#define FR_DER_TAG_VALUE_MAX (0x1f) |
tags >=max can't exist
Definition at line 63 of file der.h.
◆ fr_der_tag_class_t
Enumerator |
---|
FR_DER_CLASS_UNIVERSAL | |
FR_DER_CLASS_APPLICATION | |
FR_DER_CLASS_CONTEXT | |
FR_DER_CLASS_PRIVATE | |
FR_DER_CLASS_INVALID | |
Definition at line 70 of file der.h.
◆ fr_der_tag_constructed_t
Enumerator |
---|
FR_DER_TAG_PRIMITIVE | This is a leaf value, it contains no children.
|
FR_DER_TAG_CONSTRUCTED | This is a sequence or set, it contains children.
|
Definition at line 65 of file der.h.
◆ fr_der_tag_t
Enumeration describing the data types in a DER encoded structure.
Enumerator |
---|
FR_DER_TAG_INVALID | Invalid tag.
|
FR_DER_TAG_BOOLEAN | Boolean true/false.
|
FR_DER_TAG_INTEGER | Arbitrary width signed integer.
|
FR_DER_TAG_BITSTRING | String of bits (length field specifies bits).
|
FR_DER_TAG_OCTETSTRING | String of octets (length field specifies bytes).
|
FR_DER_TAG_NULL | An empty value.
|
FR_DER_TAG_OID | Reference to an OID based attribute.
|
FR_DER_TAG_ENUMERATED | An enumerated value.
|
FR_DER_TAG_UTF8_STRING | String of UTF8 chars.
|
FR_DER_TAG_SEQUENCE | A sequence of DER encoded data (a structure).
|
FR_DER_TAG_SET | A set of DER encoded data (a structure).
|
FR_DER_TAG_PRINTABLE_STRING | String of printable chars.
|
FR_DER_TAG_T61_STRING | String of T61 (8bit) chars.
|
FR_DER_TAG_IA5_STRING | String of IA5 (7bit) chars.
|
FR_DER_TAG_UTC_TIME | A time in UTC "YYMMDDhhmmssZ" format.
|
FR_DER_TAG_GENERALIZED_TIME | A time in "YYYYMMDDHHMMSS[.fff]Z" format.
|
FR_DER_TAG_VISIBLE_STRING | String of visible chars.
|
FR_DER_TAG_GENERAL_STRING | String of general chars.
|
FR_DER_TAG_UNIVERSAL_STRING | String of universal chars.
|
FR_DER_TAG_BMP_STRING | String of BMP chars.
|
FR_DER_TAG_CHOICE | A choice of types. Techically not a DER tag, but used to represent a choice.
|
FR_DER_TAG_MAX | |
Definition at line 36 of file der.h.
◆ fr_der_attr_flags()
◆ fr_der_global_free()
void fr_der_global_free |
( |
void |
| ) |
|
◆ fr_der_global_init()
int fr_der_global_init |
( |
void |
| ) |
|
◆ fr_der_tag_to_str()
◆ fr_der_tags_compatible()
◆ fr_type_to_der_tag_default()
◆ fr_type_to_der_tag_valid()
◆ dict_der