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]
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]
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')]
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]
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]
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')]
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")
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")
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')
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')
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')