You might have noticed a big difference from OB1 to OB2 in the fact that now there’s an actual ByteArray type, and you don’t have to pass base64 strings around in order to work with bytes.
This happens for example with the
Hmac blocks. These blocks take a ByteArray as input and give you a ByteArray as output.
You can feed a String directly to the input (in variable mode) and it will automatically be converted from a UTF-8 string to its corresponding bytes. You can then take the byte array output and reconvert it to a hex or base64 string using the corresponding blocks.
BLOCK:ConstantString value = "hello" => VAR @MYSTRING ENDBLOCK BLOCK:Hash input = @MYSTRING => VAR @HASH ENDBLOCK BLOCK:ByteArrayToHexString bytes = @HASH => VAR @HEX ENDBLOCK BLOCK:ByteArrayToBase64String bytes = @HASH => VAR @BASE64 ENDBLOCK
Note: In the output log of the Hash block you will see this
But this is only a HEX REPRESENTATION of the ByteArray, it’s not a hex string!!!
As you can see from the variable view, the
HASH variable is a ByteArray
If you instead don’t care about this and just want to deal with strings, you can use the
Hash String and
Hmac String blocks instead.