示例#1
0
def _box_from_seed_vectors():
    # Fmt: <seed> <tab> <public_key> || <secret_key>
    DATA = "box_from_seed.txt"
    lines = read_crypto_test_vectors(DATA, maxels=2, delimiter=b'\t')
    return [(x[0],       # seed
             x[1][:64],  # derived public key
             x[1][64:],  # derived secret key
             )
            for x in lines]
示例#2
0
def _box_from_seed_vectors():
    # Fmt: <seed> <tab> <public_key> || <secret_key>
    DATA = "box_from_seed.txt"
    lines = read_crypto_test_vectors(DATA, maxels=2, delimiter=b'\t')
    return [(x[0],       # seed
             x[1][:64],  # derived public key
             x[1][64:],  # derived secret key
             )
            for x in lines]
示例#3
0
def sealbox_vectors():
    # Fmt: <recipient sk><tab><recipient pk><tab><pt_len>:<plaintext>
    # <tab><cr_len>:<ciphertext>[<tab> ...]

    def splitlen(x):
        ln, dta = x.split(b':')
        assert len(dta) == 2 * int(ln)
        return dta

    DATA = "sealed_box_ref.txt"
    return [(x[0], x[1], splitlen(x[2]), splitlen(x[3]))
            for x in read_crypto_test_vectors(DATA, maxels=4, delimiter=b'\t')]
示例#4
0
def ed25519_known_answers():
    # Known answers taken from: http://ed25519.cr.yp.to/python/sign.input
    # hex-encoded fields on each input line: sk||pk, pk, msg, signature||msg
    # known answer fields: sk, pk, msg, signature, signed
    DATA = "ed25519"
    lines = read_crypto_test_vectors(DATA, delimiter=b':')
    return [(x[0][:64],   # secret key
             x[1],        # public key
             x[2],        # message
             x[3][:128],  # signature
             x[3],        # signed message
             )
            for x in lines]
示例#5
0
def ed25519_known_answers():
    # Known answers taken from: http://ed25519.cr.yp.to/python/sign.input
    # hex-encoded fields on each input line: sk||pk, pk, msg, signature||msg
    # known answer fields: sk, pk, msg, signature, signed
    DATA = "ed25519"
    lines = read_crypto_test_vectors(DATA, delimiter=b':')
    return [(x[0][:64],   # secret key
             x[1],        # public key
             x[2],        # message
             x[3][:128],  # signature
             x[3],        # signed message
             )
            for x in lines]
示例#6
0
def sealbox_vectors():
    # Fmt: <recipient sk><tab><recipient pk><tab><pt_len>:<plaintext>
    # <tab><cr_len>:<ciphertext>[<tab> ...]

    def splitlen(x):
        ln, dta = x.split(b':')
        assert len(dta) == 2 * int(ln)
        return dta

    DATA = "sealed_box_ref.txt"
    return [(x[0],
             x[1],
             splitlen(x[2]),
             splitlen(x[3])
             )
            for x in read_crypto_test_vectors(DATA,
                                              maxels=4, delimiter=b'\t')]
示例#7
0
def blake2_salt_pers_vectors():
    # Format: <message> <tab> <key> <tab> <salt> <tab>
    # <personalization> <tab> <output length> <tab> <output>
    DATA = "crypto-test-vectors-blake2-salt-personalization.txt"
    return read_crypto_test_vectors(DATA, delimiter=b"\t")
示例#8
0
def generichash_vectors():
    # Format: <message> <tab> <key> <tab> <output length> <tab> <output>
    DATA = "crypto-test-vectors-blake2-nosalt-nopersonalization.txt"
    return read_crypto_test_vectors(DATA, delimiter=b"\t")
示例#9
0
def sealbox_vectors():
    # Fmt: <recipient sk><tab><recipient pk><tab><plaintext><tab><ciphertext>
    # [<tab> ...]
    DATA = "sealed_box_ref.txt"
    return read_crypto_test_vectors(DATA, maxels=4, delimiter=b'\t')
示例#10
0
def blake2_salt_pers_vectors():
    # Format: <message> <tab> <key> <tab> <salt> <tab>
    # <personalization> <tab> <output length> <tab> <output>
    DATA = "crypto-test-vectors-blake2-salt-personalization.txt"
    return read_crypto_test_vectors(DATA, delimiter=b'\t')
示例#11
0
def generichash_vectors():
    # Format: <message> <tab> <key> <tab> <output length> <tab> <output>
    DATA = "crypto-test-vectors-blake2-nosalt-nopersonalization.txt"
    return read_crypto_test_vectors(DATA, delimiter=b'\t')