thashes.py - obelisk - Electrum server using libbitcoin as its backend
HTML git clone https://git.parazyd.org/obelisk
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
thashes.py (1215B)
---
1 #!/usr/bin/env python3
2 # Copyright (C) 2020-2021 Ivan J. <parazyd@dyne.org>
3 #
4 # This file is part of obelisk
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU Affero General Public License version 3
8 # as published by the Free Software Foundation.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
14 #
15 # You should have received a copy of the GNU Affero General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 """ Cryptographic hash functions and helpers """
18 import hashlib
19
20 _sha256 = hashlib.sha256
21
22
23 def sha256(inp):
24 """ Simple wrapper of hashlib sha256. """
25 return _sha256(inp).digest()
26
27
28 def double_sha256(inp):
29 """ sha256 of sha256, as used extensively in bitcoin """
30 return sha256(sha256(inp))
31
32
33 def hash_to_hex_str(inp):
34 """Convert a big-endian binary hash to displayed hex string.
35 Display form of a binary hash is reversed and converted to hex.
36 """
37 return bytes(reversed(inp)).hex()