Skip to content
Snippets Groups Projects
expected_values.py 1.02 KiB
Newer Older
# Tested on Python 3.9.15 against Tahoe-LAFS bc79cf0a11f06bbdc02a5bb41c6f41fcff727ea5
#

from allmydata.crypto import rsa
from allmydata.mutable.common import derive_mutable_keys
from allmydata.util import base32
from allmydata.util.hashutil import ssk_readkey_hash, ssk_readkey_data_hash

# Arbitrarily select an IV.
iv = b"\x42" * 16

with open("data/rsa-privkey-0.der", "rb") as f:
    (priv, pub) = rsa.create_signing_keypair_from_string(f.read())

writekey, encprivkey, fingerprint = derive_mutable_keys((pub, priv))
readkey = ssk_readkey_hash(writekey)
datakey = ssk_readkey_data_hash(iv, readkey)

print("SDMF")
print("writekey: ", base32.b2a(writekey))
print("readkey: ", base32.b2a(readkey))
print("datakey: ", base32.b2a(datakey))
print("encrypted private key: ", base32.b2a(encprivkey))
print("signature key hash: ", base32.b2a(fingerprint))

(priv, pub) = rsa.create_signing_keypair(2048)
priv_bytes = rsa.der_string_from_signing_key(priv)
with open("data/tahoe-lafs-generated-rsa-privkey.der", "wb") as f:
    f.write(priv_bytes)