diff options
author | Christian Pointner <equinox@spreadspace.org> | 2023-12-19 02:24:32 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2023-12-19 02:24:32 +0100 |
commit | 6da64ac795c0e395c74d9da8ae21687eb6cf35a2 (patch) | |
tree | c9ffed9ee10ba64949c1cb202fe1107283a5b3d7 /filter_plugins | |
parent | update prometheus server (diff) |
add mosquitto role (WIP)
Diffstat (limited to 'filter_plugins')
-rw-r--r-- | filter_plugins/crypto.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/filter_plugins/crypto.py b/filter_plugins/crypto.py index 54547a34..995776d3 100644 --- a/filter_plugins/crypto.py +++ b/filter_plugins/crypto.py @@ -2,6 +2,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import hashlib +import passlib from binascii import hexlify from passlib.utils.binary import Base64Engine, HASH64_CHARS, BCRYPT_CHARS from ansible.module_utils._text import to_bytes, to_text @@ -53,6 +54,18 @@ def wifi_80211r_key(seed): raise errors.AnsibleFilterError("wifi_80211r_key(): %s" % str(e)) +def mosquitto_passwd_hash(password, seed): + ''' generate password hash for use by mosquitto mqtt server ''' + try: + h = hashlib.new('sha512') + h.update(to_bytes(seed, errors='surrogate_or_strict')) + salt = h.digest()[0:12] + digest = passlib.hash.pbkdf2_sha512.using(salt=salt).hash(password).replace('pbkdf2-sha512', '7').replace('.', '+') + return digest + '==' + except Exception as e: + raise errors.AnsibleFilterError("mosquitto_passwd_hash(): %s" % str(e)) + + class FilterModule(object): ''' crypto helpers ''' @@ -62,6 +75,7 @@ class FilterModule(object): 'sha512_salt': sha2_crypt_salt, 'bcrypt_salt': bcrypt_salt, 'wifi_80211r_key': wifi_80211r_key, + 'mosquitto_passwd_hash': mosquitto_passwd_hash, } def filters(self): |