public static bool DecodeString(
this Argon2Config config,
string str,
out ZeroedBuffer<byte>?? hash
)<ExtensionAttribute>
Public Shared Function DecodeString (
config As Argon2Config,
str As String,
<OutAttribute> ByRef hash As ZeroedBuffer(Of Byte)
) As Booleanpublic:
[ExtensionAttribute]
static bool DecodeString(
Argon2Config^ config,
String^ str,
[OutAttribute] ZeroedBuffer<unsigned char>^% hash
)Gemstone.Security.Cryptography.Argon2Hash.DecodeExtension.DecodeString = function(config, str, hash);Expected format:
$argon2<T>[$v=<num>]$m=<num>,t=<num>,p=<num>[,keyid=<bin>][,data=<bin>][$<bin>[$<bin>]].
where <T> is either 'd' or 'i', <num> is a decimal integer (positive, fits in an 'unsigned long'), and <bin> is Base64-encoded data (no '=' padding characters, no newline or whitespace). The "keyid" is a binary identifier for a key (up to 8 bytes); "data" is associated data (up to 32 bytes). When the 'keyid' (resp. the 'data') is empty, then it is omitted from the output.
The last two binary chunks (encoded in Base64) are, in that order, the salt and the output. Both are optional, but you cannot have an output without a salt. The binary salt length is between 8 and 48 bytes. The output length is always exactly 32 bytes.