Data Transform Language

With the Data Transform Language, you can define how to transform your agent's metadata and its job results, as well as how to transform the server's response and tasking. The following statements can be used to achieve transformation:

StatementAction

append string

Add a string after the encoded data.

base64

Use base64 encoding to encode the data from either the server or the agent.

base64url

Use base64 url safe encoding to encode the data from either the server or the agent.

mask

Use xor encoding with a randomly generated key to encode the data from either the server or the agent.

netbios

Use netbios encoding with lowercase letters only to encode the data from either the server or the agent.

netbiosu

Use netbios encoding with uppercase letters only to encode the data from either the server or the agent.

prepend string

Add a string before the encoded data.

base64 encoding

The base64 encoding process involves breaking down the input binary data into 6-bit chunks and mapping those chunks to specific characters from the base64 character set. This set includes 64 characters made up of uppercase and lowercase letters, digits, and two additional characters typically used as padding:

'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 
'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 
't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', 
'2', '3', '4', '5', '6', '7', '8', '9', '+', 
'/'

base64url encoding

The base64url encoding type serves as a URL-safe variant of base64 encoding. Base64 contains characters like +, /, and =, which possess reserved meanings in certain filesystem names and URLs. Base64url addresses this issue by replacing those characters:

'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 
'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 
't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', 
'2', '3', '4', '5', '6', '7', '8', '9', '-', 
'_'

The padding character = is omitted from the encoded data because it is typically percent-encoded in a URL.

mask encoding

XOR encoding using a randomly generated 4-byte-long key. You can mix it with other encodings. For example, if data is encoded in NetBIOS, you can still use mask encoding to XOR-encode the NetBIOS-encoded data.

netbios encoding

In the NetBIOS encoding algorithm, every byte is represented using two ASCII characters. Each 4-bit (nibble) of the input byte is processed individually by right-adjusting or zero-filling the binary number. Afterward, this number gets added to the ASCII value of the character 'a'. The resulting byte is stored as an independent byte. Below is the character set employed for encoding:

'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p'

netbiosu encoding

The NetBIOSU encoding is similar to the NetBIOS encoding, differing solely in the character set; while the latter uses lowercase letters, the former employs uppercase letters:

'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P'

Transformed data location

StatementAction

header header_name

Store the transformed data in a header

parameter key_name

Store the transformed data in a URI parameter

print

Store the transformed data as transaction body

Last updated