From 323f2ad66befb13ec3b31b5ab99c9448b9a6b067 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 6 Jan 2018 15:00:28 -0600 Subject: add 1200 byte HKDF test vector and a generator/verifier for it (#4074) * add 1200 byte HKDF test vector and a generator/verifier for it * exit non-zero when failing * ugh --- .../custom-vectors/hkdf/generate_hkdf.py | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docs/development/custom-vectors/hkdf/generate_hkdf.py (limited to 'docs/development/custom-vectors/hkdf/generate_hkdf.py') diff --git a/docs/development/custom-vectors/hkdf/generate_hkdf.py b/docs/development/custom-vectors/hkdf/generate_hkdf.py new file mode 100644 index 00000000..767aedd8 --- /dev/null +++ b/docs/development/custom-vectors/hkdf/generate_hkdf.py @@ -0,0 +1,39 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +from __future__ import absolute_import, division, print_function + +import binascii + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.kdf.hkdf import HKDF + +IKM = binascii.unhexlify(b"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b") +L = 1200 +OKM = HKDF( + algorithm=hashes.SHA256(), length=L, salt=None, info=None, + backend=default_backend() +).derive(IKM) + + +def _build_vectors(): + output = [] + output.append("COUNT = 0") + output.append("Hash = SHA-256") + output.append("IKM = " + binascii.hexlify(IKM).decode("ascii")) + output.append("salt = ") + output.append("info = ") + output.append("L = {}".format(L)) + output.append("OKM = " + binascii.hexlify(OKM).decode("ascii")) + return "\n".join(output) + + +def _write_file(data, filename): + with open(filename, 'w') as f: + f.write(data) + + +if __name__ == '__main__': + _write_file(_build_vectors(), 'hkdf.txt') -- cgit v1.2.3