crypto Module¶
| Since | Origin / Contributor | Maintainer | Source |
|---|---|---|---|
| 2019-01-13 | Javier Peletier, Johny Mattsson | Javier Peletier | crypto.c |
The crypto module provides various functions for working with cryptographic algorithms.
The following algorithms are supported, both in digest mode and in HMAC mode: * MD5 * SHA1 * RIPEMD160 * SHA224 * SHA256 * SHA384 * SHA512
crypto.new_hash()¶
Create a digest/hash object that can have any number of strings added to it.
The returned object has update(str) and finalize() functions, for
streaming data through the hash function, and for finalizing and returning
the resulting digest.
Syntax¶
hashobj = crypto.new_hash(algo)
Parameters¶
algothe hash algorithm to use, case insensitive string
Returns¶
Hasher object with update and finalize functions available.
Example¶
hashobj = crypto.new_hash("SHA1")
hashobj:update("FirstString")
hashobj:update("SecondString")
digest = hashobj:finalize()
print(encoder.toHex(digest))
crypto.new_hmac()¶
Create an object for calculating a HMAC (Hashed Message Authentication Code, aka "signature"). A HMAC can be used to simultaneously verify both integrity and authenticity of data.
The returned object has update(str) and finalize() functions, for
streaming data through the hash function, and for finalizing and returning
the resulting signature.
Syntax¶
hashobj = crypto.new_hmac(algo, key)
Parameters¶
algothe hash algorithm to use, case insensitive stringkeythe signing key (may be a binary string)
Returns¶
Hasher object with update and finalize functions available.
Example¶
hmac = crypto.new_hmac("SHA1", "top s3cr3t key")
hmac:update("Some data")
hmac:update("... more data")
signature = hmac:finalize()
print(encoder.toHex(signature))