YAML integer field type objects

Integer field type objects are the types of integer data fields, found in data streams.

Properties

Name Type Description Req? Default

class

String

This property’s value must be one of:

unsigned-integer
unsigned-int
uint

Unsigned integer field type

signed-integer
signed-int
sint

Signed integer field type

Yes if the $inherit property is not set.

$inherit

String

Name of a field type alias from which to inherit.

Yes if the class property is not set.

size

Positive integer

Size of this field type’s instances (bits).

This property’s value must be in the [1, 64] range.

Yes

alignment

Power-of-two integer

Alignment of the first bit of this field type’s instances within a CTF packet (bits).

No

8 if the size property is a multiple of 8, or 1 otherwise.

preferred-display-base

String

The preferred base (radix) to use when displaying this field type’s instances.

The value of this property is only a hint to CTF consumers; they don’t have to consider it.

This property’s value must be one of:

bin
binary

Binary.

oct
octal

Octal.

dec
decimal

Decimal.

hex
hexadecimal

Hexadecimal.

No

Decimal preferred display base

Generated C types

Depending on the signedness of the integer field type and on the value of its size property:

Signedness / Size (bits) [1, 8] [9, 16] [17, 32] [33, 64]

Unsigned

uint8_t

uint16_t

uint32_t

uint64_t

Signed

int8_t

int16_t

int32_t

int64_t

Examples

Example 1. Basic 8-bit unsigned integer field type object.
class: unsigned-integer
size: 8
Example 2. 23-bit signed integer field type object.
class: signed-integer
size: 23
Example 3. 32-bit-aligned 16-bit signed integer field type object.
class: signed-integer
size: 16
alignment: 32
Example 4. 32-bit unsigned integer field type object with a hexadecimal preferred display base.
class: unsigned-integer
size: 32
preferred-display-base: hexadecimal