2.0 KiB
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
algo
the 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
algo
the hash algorithm to use, case insensitive stringkey
the 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))