Verifier
Class function
nevis.crypto.verifier.new(key)
Instantiates a new verifier object for signing and verifying strings with HMAC-SHA256.
- key: The signing key, interpreted as an ASCII string (1 byte per character). Use
\x01–\xFFfor non-ASCII values; the key must not contain\x00.
Sample:
local verifier = nevis.crypto.verifier.new("TheKey")
Object methods
Each parameter is interpreted as an ASCII string (1 byte per character), but is not limited to ASCII characters. For non-ASCII values, use \x01–\xFF. Parameters must not contain \x00 — if they do, the verifier ignores that character and everything that follows. Because of this, binary inputs should be Base64 encoded first.
verifier:sign(data)
Returns the given data followed by its HMAC-SHA256 hash, separated by an underscore.
Sample:
local signedValue = verifier:sign("TheTextToSign")
verifier:verify(signedValue)
Expects a value signed with verifier:sign(). Returns the original data (without the signature) if the signature matches, or nil if it does not.
Sample:
local verifiedData = verifier:verify(signedValue)
verifier:createTag(data)
Returns the HMAC-SHA256 signature (tag) for the given data. The tag can be verified with verifier:verifyTag().
Sample:
local tag = verifier:createTag("TheText")
verifier:verifyTag(data, tag)
Returns true if the data matches the given tag, or false if it does not.
Sample:
local result = verifier:verifyTag("TheText", tag)
Example
local verifier = nevis.crypto.verifier.new("TheKey")
local signedMsg = verifier:sign("TheTextToSign") -- signedMsg is TheTextToSign_signatureTag
local verifiedValue = verifier:verify(signedMsg)
if verifiedValue then
-- verifiedValue is "TheTextToSign"
else
-- verifying failed
end
local tagText = verifier:createTag("TheTextToTag") -- tagText is HrRoBMhhxjCaJMOnGfMoeaUSGOruiWiwGdwKQtsUOfALKF
local tVerifiedValue = verifier:verifyTag("TheTextToTag", tagText)
if tVerifiedValue then
-- tVerifiedValue is "TheTextToTag"
else
-- verifying failed
end