Add .items() to Config
This commit is contained in:
parent
af0881b823
commit
e7a35d23e5
5 changed files with 86 additions and 1 deletions
64
dtk/aux.py
64
dtk/aux.py
|
@ -1,6 +1,8 @@
|
|||
#! /usr/bin/env python3
|
||||
# encoding: utf-8
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
|
||||
def flatten_dict(root, glue=" ", prefix=[]):
|
||||
lines = []
|
||||
|
||||
|
@ -13,3 +15,65 @@ def flatten_dict(root, glue=" ", prefix=[]):
|
|||
lines.append((glue.join(new_prefix), v))
|
||||
|
||||
return lines
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
|
||||
import random
|
||||
|
||||
PASSPHRASE_VOWELS = "aeiuAEU"
|
||||
PASSPHRASE_CONSONANTS = "bcdfghjkmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ23456789"
|
||||
|
||||
def random_bytes(length):
|
||||
return open("/dev/urandom", "rb").read(length)
|
||||
|
||||
def random_syllable():
|
||||
return random.choice(PASSPHRASE_CONSONANTS) + random.choice(PASSPHRASE_VOWELS) + random.choice(PASSPHRASE_CONSONANTS)
|
||||
|
||||
def random_word(syllables=3):
|
||||
parts = []
|
||||
|
||||
for _ in range(syllables):
|
||||
parts.append(random_syllable())
|
||||
|
||||
return "".join(parts)
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
|
||||
import hashlib
|
||||
|
||||
def hash_password(p, hexdigest=True):
|
||||
h = hashlib.blake2b()
|
||||
|
||||
h.update(p.encode("utf-8"))
|
||||
|
||||
return h.hexdigest() if hexdigest else h.digest()
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
|
||||
def raw_to_hex(raw, separator=" "):
|
||||
"""
|
||||
Converts a bytearray (or bytes) into its textual hexadecimal representation.
|
||||
"""
|
||||
|
||||
output = []
|
||||
|
||||
for o in raw:
|
||||
output.append(hex(o)[2:].zfill(2))
|
||||
|
||||
return separator.join(output)
|
||||
|
||||
def hex_to_raw(text, separator=" "):
|
||||
"""
|
||||
Converts a hexadecimal representation of a byte array into a bytearray.
|
||||
"""
|
||||
|
||||
output = []
|
||||
|
||||
text = text.replace(separator, "")
|
||||
|
||||
for i in range(len(text)//2):
|
||||
output.append(int(text[2*i:2*i+2], 16))
|
||||
|
||||
return bytearray(output)
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue