ltm rule command ASN1 decodeΒΆ

iRule(1)					  BIG-IP TMSH Manual					     iRule(1)

ASN1::decode
       Decodes ASN.1 records.

SYNOPSIS
       ASN1::decode ELEMENT FORMAT (VAR_NAME)*

DESCRIPTION
       This command is used to decode ASN.1 records. element specifies the data to decode. It can be either a byte
       array (like is returned from TCP::payload), or an element object returned by one of the other commands. The
       bytes are decoded according to formatString, and the results are stored in variables whose names are provided
       as command arguments. If a variable with a name specified doesn't exist, it will be created in the current
       scope. If the variable does exist, it's value will be overwritten. The command returns the number of elements
       decoded. If decoding iteratively, you will likely want to use ASN1::element next with this returned value to
       move to the next appropriate element for further decoding.

       formatString can have the following characters:
	 * a - Octet String
	 * B - Bit String
	 * b - Boolean
	 * e - Enum
	 * i - Integer
	 * l - Length of next element
	 * t - Tag of next element
	 * x - Skip Element. No corresponding parameter is specified
	 * ? - Don't output the component if the corresponding value is empty
	 * ?hex-tag - Denotes that the specifier which follows is for an
	   optional component. This is used for encoding or decoding an ASN.1
	   Set or Sequence which contains nested OPTIONAL or DEFAULT
	   components. hex-tag, is a two-character hex byte of the expected
	   tag. When used with the decode command, if the component
	   corresponding to the optional specifier is not found, the
	   corresponding tcl variable will be unset. This allows the iRule to
	   use the Tcl info exists command to test the variable to determine
	   if the component was found. See the following section for more
	   details and examples.
	 * ( - Begin Sequence. No corresponding parameter is specified. The
	   initial sequence tag and length are skipped.
	 * ) - End Sequence. No corresponding parameter is specified.
	 * < - Begin Set. No corresponding parameter is specified. The initial
	   sequence tag and length are skipped.
	 * > - End Set. No corresponding parameter is specified.

RETURN VALUE
VALID DURING
EXAMPLES
	ASN1::decode $ele "?a?aa?b" ruleId type matchValue dnAttrs
	if {![info exists ruleId] && ![info exists type]} {
	  log local0. "ERR: extensibleMatch must contain either a matchingRule or type component"
	}
	# Handle default value for dnAttributes component
	if {![info exists dnAttrs]} {
	  set dnAttrs 0
	}

HINTS
SEE ALSO
CHANGE LOG
       @BIGIP-11.5.0 --First introduced the command.

BIG-IP						      2020-06-23					     iRule(1)