I'm implementing the HASH_DRBG algorithm. As per NIST-SP800 90 document for HASH DRBG Generation, section 10.4.1 "Derivation Function Using a Hash Function (Hash_df)", the Hash_df algorithm contains this step 4.1:
temp = temp || Hash (counter || no_of_bits_to_return || input_string).
I believe || here represents "append" operation. According to the algorithm, do I have to make the append operation and hashing on an ASCII hex string or a binary string?
Example, I can do
Hash ("000102030405060708090A0B0C0D0E0F101112131415161718191A1B1") where the input is ASCII string characters. Or I can do
Hash(&bytearray) where bytearray stores the non-ASCII numbers in binary?
Which one is expected as per the algorithm? I am planning to use SHA-1 or SHA-256 as Hash here.