示例#1
0
def dump_uri_instance(u, nodeid, secret, out, show_header=True):
    from allmydata import uri
    from allmydata.storage.server import si_b2a
    from allmydata.util import base32, hashutil
    from allmydata.util.encodingutil import quote_output

    if isinstance(u, uri.CHKFileURI):
        if show_header:
            print("CHK File:", file=out)
        print(" key:", base32.b2a(u.key), file=out)
        print(" UEB hash:", base32.b2a(u.uri_extension_hash), file=out)
        print(" size:", u.size, file=out)
        print(" k/N: %d/%d" % (u.needed_shares, u.total_shares), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.CHKFileVerifierURI):
        if show_header:
            print("CHK Verifier URI:", file=out)
        print(" UEB hash:", base32.b2a(u.uri_extension_hash), file=out)
        print(" size:", u.size, file=out)
        print(" k/N: %d/%d" % (u.needed_shares, u.total_shares), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)

    elif isinstance(u, uri.LiteralFileURI):
        if show_header:
            print("Literal File URI:", file=out)
        print(" data:", quote_output(u.data), file=out)

    elif isinstance(u, uri.WriteableSSKFileURI):  # SDMF
        if show_header:
            print("SDMF Writeable URI:", file=out)
        print(" writekey:", base32.b2a(u.writekey), file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
        print(file=out)
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print(" write_enabler:", base32.b2a(we), file=out)
            print(file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.ReadonlySSKFileURI):
        if show_header:
            print("SDMF Read-only URI:", file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
    elif isinstance(u, uri.SSKVerifierURI):
        if show_header:
            print("SDMF Verifier URI:", file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)

    elif isinstance(u, uri.WriteableMDMFFileURI):  # MDMF
        if show_header:
            print("MDMF Writeable URI:", file=out)
        print(" writekey:", base32.b2a(u.writekey), file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
        print(file=out)
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print(" write_enabler:", base32.b2a(we), file=out)
            print(file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.ReadonlyMDMFFileURI):
        if show_header:
            print("MDMF Read-only URI:", file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
    elif isinstance(u, uri.MDMFVerifierURI):
        if show_header:
            print("MDMF Verifier URI:", file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)

    elif isinstance(u, uri.ImmutableDirectoryURI):  # CHK-based directory
        if show_header:
            print("CHK Directory URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ImmutableDirectoryURIVerifier):
        if show_header:
            print("CHK Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    elif isinstance(u, uri.DirectoryURI):  # SDMF-based directory
        if show_header:
            print("Directory Writeable URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyDirectoryURI):
        if show_header:
            print("Directory Read-only URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.DirectoryURIVerifier):
        if show_header:
            print("Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    elif isinstance(u, uri.MDMFDirectoryURI):  # MDMF-based directory
        if show_header:
            print("Directory Writeable URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyMDMFDirectoryURI):
        if show_header:
            print("Directory Read-only URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.MDMFDirectoryURIVerifier):
        if show_header:
            print("Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    else:
        print("unknown cap type", file=out)
示例#2
0
 def get_write_enabler(self, server):
     seed = server.get_foolscap_write_enabler_seed()
     assert len(seed) == 20
     return hashutil.ssk_write_enabler_hash(self._writekey, seed)
示例#3
0
文件: debug.py 项目: drewp/tahoe-lafs
def dump_uri_instance(u, nodeid, secret, out, show_header=True):
    from allmydata import uri
    from allmydata.storage.server import si_b2a
    from allmydata.util import base32, hashutil
    from allmydata.util.encodingutil import quote_output

    if isinstance(u, uri.CHKFileURI):
        if show_header:
            print >>out, "CHK File:"
        print >>out, " key:", base32.b2a(u.key)
        print >>out, " UEB hash:", base32.b2a(u.uri_extension_hash)
        print >>out, " size:", u.size
        print >>out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
        print >>out, " storage index:", si_b2a(u.get_storage_index())
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.CHKFileVerifierURI):
        if show_header:
            print >>out, "CHK Verifier URI:"
        print >>out, " UEB hash:", base32.b2a(u.uri_extension_hash)
        print >>out, " size:", u.size
        print >>out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
        print >>out, " storage index:", si_b2a(u.get_storage_index())

    elif isinstance(u, uri.LiteralFileURI):
        if show_header:
            print >>out, "Literal File URI:"
        print >>out, " data:", quote_output(u.data)

    elif isinstance(u, uri.WriteableSSKFileURI):
        if show_header:
            print >>out, "SSK Writeable URI:"
        print >>out, " writekey:", base32.b2a(u.writekey)
        print >>out, " readkey:", base32.b2a(u.readkey)
        print >>out, " storage index:", si_b2a(u.get_storage_index())
        print >>out, " fingerprint:", base32.b2a(u.fingerprint)
        print >>out
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print >>out, " write_enabler:", base32.b2a(we)
            print >>out
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)

    elif isinstance(u, uri.ReadonlySSKFileURI):
        if show_header:
            print >>out, "SSK Read-only URI:"
        print >>out, " readkey:", base32.b2a(u.readkey)
        print >>out, " storage index:", si_b2a(u.get_storage_index())
        print >>out, " fingerprint:", base32.b2a(u.fingerprint)
    elif isinstance(u, uri.SSKVerifierURI):
        if show_header:
            print >>out, "SSK Verifier URI:"
        print >>out, " storage index:", si_b2a(u.get_storage_index())
        print >>out, " fingerprint:", base32.b2a(u.fingerprint)

    elif isinstance(u, uri.DirectoryURI):
        if show_header:
            print >>out, "Directory Writeable URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyDirectoryURI):
        if show_header:
            print >>out, "Directory Read-only URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.DirectoryURIVerifier):
        if show_header:
            print >>out, "Directory Verifier URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    else:
        print >>out, "unknown cap type"
示例#4
0
 def get_write_enabler(self, peerid):
     assert len(peerid) == 20
     return hashutil.ssk_write_enabler_hash(self._writekey, peerid)
示例#5
0
 def get_write_enabler(self, peerid):
     assert len(peerid) == 20
     return hashutil.ssk_write_enabler_hash(self._writekey, peerid)
示例#6
0
 def get_write_enabler(self, server):
     seed = server.get_foolscap_write_enabler_seed()
     assert len(seed) == 20
     return hashutil.ssk_write_enabler_hash(self._writekey, seed)
示例#7
0
文件: debug.py 项目: cpelsser/tamias
def dump_uri_instance(u, nodeid, secret, out, show_header=True):
    from allmydata import uri
    from allmydata.storage.server import si_b2a
    from allmydata.util import base32, hashutil
    from allmydata.util.encodingutil import quote_output

    if isinstance(u, uri.CHKFileURI):
        if show_header:
            print >> out, "CHK File:"
        print >> out, " key:", base32.b2a(u.key)
        print >> out, " UEB hash:", base32.b2a(u.uri_extension_hash)
        print >> out, " size:", u.size
        print >> out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
        print >> out, " storage index:", si_b2a(u.get_storage_index())
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.CHKFileVerifierURI):
        if show_header:
            print >> out, "CHK Verifier URI:"
        print >> out, " UEB hash:", base32.b2a(u.uri_extension_hash)
        print >> out, " size:", u.size
        print >> out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
        print >> out, " storage index:", si_b2a(u.get_storage_index())

    elif isinstance(u, uri.LiteralFileURI):
        if show_header:
            print >> out, "Literal File URI:"
        print >> out, " data:", quote_output(u.data)

    elif isinstance(u, uri.WriteableSSKFileURI):
        if show_header:
            print >> out, "SSK Writeable URI:"
        print >> out, " writekey:", base32.b2a(u.writekey)
        print >> out, " readkey:", base32.b2a(u.readkey)
        print >> out, " storage index:", si_b2a(u.get_storage_index())
        print >> out, " fingerprint:", base32.b2a(u.fingerprint)
        print >> out
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print >> out, " write_enabler:", base32.b2a(we)
            print >> out
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)

    elif isinstance(u, uri.ReadonlySSKFileURI):
        if show_header:
            print >> out, "SSK Read-only URI:"
        print >> out, " readkey:", base32.b2a(u.readkey)
        print >> out, " storage index:", si_b2a(u.get_storage_index())
        print >> out, " fingerprint:", base32.b2a(u.fingerprint)
    elif isinstance(u, uri.SSKVerifierURI):
        if show_header:
            print >> out, "SSK Verifier URI:"
        print >> out, " storage index:", si_b2a(u.get_storage_index())
        print >> out, " fingerprint:", base32.b2a(u.fingerprint)

    elif isinstance(u, uri.DirectoryURI):
        if show_header:
            print >> out, "Directory Writeable URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyDirectoryURI):
        if show_header:
            print >> out, "Directory Read-only URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.DirectoryURIVerifier):
        if show_header:
            print >> out, "Directory Verifier URI:"
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    else:
        print >> out, "unknown cap type"
示例#8
0
def dump_uri_instance(u, nodeid, secret, out, show_header=True):
    from allmydata import uri
    from allmydata.storage.server import si_b2a
    from allmydata.util import base32, hashutil
    from allmydata.util.encodingutil import quote_output

    if isinstance(u, uri.CHKFileURI):
        if show_header:
            print("CHK File:", file=out)
        print(" key:", base32.b2a(u.key), file=out)
        print(" UEB hash:", base32.b2a(u.uri_extension_hash), file=out)
        print(" size:", u.size, file=out)
        print(" k/N: %d/%d" % (u.needed_shares, u.total_shares), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.CHKFileVerifierURI):
        if show_header:
            print("CHK Verifier URI:", file=out)
        print(" UEB hash:", base32.b2a(u.uri_extension_hash), file=out)
        print(" size:", u.size, file=out)
        print(" k/N: %d/%d" % (u.needed_shares, u.total_shares), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)

    elif isinstance(u, uri.LiteralFileURI):
        if show_header:
            print("Literal File URI:", file=out)
        print(" data:", quote_output(u.data), file=out)

    elif isinstance(u, uri.WriteableSSKFileURI): # SDMF
        if show_header:
            print("SDMF Writeable URI:", file=out)
        print(" writekey:", base32.b2a(u.writekey), file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
        print(file=out)
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print(" write_enabler:", base32.b2a(we), file=out)
            print(file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.ReadonlySSKFileURI):
        if show_header:
            print("SDMF Read-only URI:", file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
    elif isinstance(u, uri.SSKVerifierURI):
        if show_header:
            print("SDMF Verifier URI:", file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)

    elif isinstance(u, uri.WriteableMDMFFileURI): # MDMF
        if show_header:
            print("MDMF Writeable URI:", file=out)
        print(" writekey:", base32.b2a(u.writekey), file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
        print(file=out)
        if nodeid:
            we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
            print(" write_enabler:", base32.b2a(we), file=out)
            print(file=out)
        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
    elif isinstance(u, uri.ReadonlyMDMFFileURI):
        if show_header:
            print("MDMF Read-only URI:", file=out)
        print(" readkey:", base32.b2a(u.readkey), file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)
    elif isinstance(u, uri.MDMFVerifierURI):
        if show_header:
            print("MDMF Verifier URI:", file=out)
        print(" storage index:", si_b2a(u.get_storage_index()), file=out)
        print(" fingerprint:", base32.b2a(u.fingerprint), file=out)


    elif isinstance(u, uri.ImmutableDirectoryURI): # CHK-based directory
        if show_header:
            print("CHK Directory URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ImmutableDirectoryURIVerifier):
        if show_header:
            print("CHK Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    elif isinstance(u, uri.DirectoryURI): # SDMF-based directory
        if show_header:
            print("Directory Writeable URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyDirectoryURI):
        if show_header:
            print("Directory Read-only URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.DirectoryURIVerifier):
        if show_header:
            print("Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    elif isinstance(u, uri.MDMFDirectoryURI): # MDMF-based directory
        if show_header:
            print("Directory Writeable URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.ReadonlyMDMFDirectoryURI):
        if show_header:
            print("Directory Read-only URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)
    elif isinstance(u, uri.MDMFDirectoryURIVerifier):
        if show_header:
            print("Directory Verifier URI:", file=out)
        dump_uri_instance(u._filenode_uri, nodeid, secret, out, False)

    else:
        print("unknown cap type", file=out)