You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
suricata/doc/userguide/lua/libs/hashlib.rst

100 lines
2.4 KiB
ReStructuredText

Hashing
-------
Hashing functions are exposed to Lua scripts with ``suricata.hashing``
library. For example::
local hashing = require("suricata.hashing")
SHA-256
~~~~~~~
``sha256_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^^^^
SHA-256 hash the provided string returning the digest as bytes.
``sha256_hex_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SHA-256 hash the provided string returning the digest as a hex string.
``sha256()``
^^^^^^^^^^^^
Returns a SHA-256 hasher that can be updated multiple times, for
example::
local hashing = require("suricata.hashing")
hasher = hashing.sha256()
hasher.update("www.suricata")
hasher.update(".io")
hash = hasher.finalize_to_hex()
The methods on the hasher object include:
* ``update(string)``: Add more data to the hasher
* ``finalize()``: Finalize the hash returning the hash as a byte string
* ``finalize_to_hex()``: Finalize the hash returning the has as a hex string
SHA-1
~~~~~
``sha1_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^^
SHA-1 hash the provided string returning the digest as bytes.
``sha1_hex_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^
SHA-1 hash the provided string returning the digest as a hex string.
``sha1()``
^^^^^^^^^^
Returns a SHA-1 hasher that can be updated multiple times, for
example::
local hashing = require("suricata.hashing")
hasher = hashing.sha1()
hasher.update("www.suricata")
hasher.update(".io")
hash = hasher.finalize_to_hex()
The methods on the hasher object include:
* ``update(string)``: Add more data to the hasher
* ``finalize()``: Finalize the hash returning the hash as a byte string
* ``finalize_to_hex()``: Finalize the hash returning the has as a hex string
MD5
~~~
``md5_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^
MD5 hash the provided string returning the digest as bytes.
``md5_hex_digest(string)``
^^^^^^^^^^^^^^^^^^^^^^^^^^
MD5 hash the provided string returning the digest as a hex string.
``md5()``
^^^^^^^^^
Returns a MD5 hasher that can be updated multiple times, for example::
local hashing = require("suricata.hashing")
hasher = hashing.md5()
hasher.update("www.suricata")
hasher.update(".io")
hash = hasher.finalize_to_hex()
The methods on the hasher object include:
* ``update(string)``: Add more data to the hasher
* ``finalize()``: Finalize the hash returning the hash as a byte string
* ``finalize_to_hex()``: Finalize the hash returning the hash as a hex string