From 6d8f9b0273e2edfbbf5fedc5dbc5c2c427a3e3e9 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Tue, 8 Apr 2014 09:17:02 -0500 Subject: add SEED CFB/OFB bespoke vectors and documentation --- docs/development/custom-vectors/seed.rst | 30 ++++++ .../custom-vectors/seed/generate_seed.py | 57 ++++++++++ .../development/custom-vectors/seed/verify_seed.py | 35 ++++++ docs/development/test-vectors.rst | 3 + .../cryptography_vectors/ciphers/SEED/seed-cfb.txt | 120 +++++++++++++++++++++ .../cryptography_vectors/ciphers/SEED/seed-ofb.txt | 120 +++++++++++++++++++++ 6 files changed, 365 insertions(+) create mode 100644 docs/development/custom-vectors/seed.rst create mode 100644 docs/development/custom-vectors/seed/generate_seed.py create mode 100644 docs/development/custom-vectors/seed/verify_seed.py create mode 100644 vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt create mode 100644 vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt diff --git a/docs/development/custom-vectors/seed.rst b/docs/development/custom-vectors/seed.rst new file mode 100644 index 00000000..d26345fa --- /dev/null +++ b/docs/development/custom-vectors/seed.rst @@ -0,0 +1,30 @@ +SEED vector creation +===================== + +This page documents the code that was used to generate the SEED CFB and OFB +test vectors as well as the code used to verify them against another +implementation. For SEED the vectors were generated using OpenSSL and verified +with Botan. + +Creation +-------- + +``cryptography`` was modified to support SEED in CFB and OFB modes. Then +the following python script was run to generate the vector files. + +.. literalinclude:: /development/custom-vectors/seed/generate_seed.py + +Download link: :download:`generate_seed.py ` + + +Verification +------------ + +The following python code was used to verify the vectors using the `Botan`_ +project's Python bindings. + +.. literalinclude:: /development/custom-vectors/seed/verify_seed.py + +Download link: :download:`verify_seed.py ` + +.. _`Botan`: http://botan.randombit.net diff --git a/docs/development/custom-vectors/seed/generate_seed.py b/docs/development/custom-vectors/seed/generate_seed.py new file mode 100644 index 00000000..d59597fd --- /dev/null +++ b/docs/development/custom-vectors/seed/generate_seed.py @@ -0,0 +1,57 @@ +import binascii + +from cryptography.hazmat.backends.openssl.backend import backend +from cryptography.hazmat.primitives.ciphers import algorithms, base, modes + + +def encrypt(mode, key, iv, plaintext): + cipher = base.Cipher( + algorithms.SEED(binascii.unhexlify(key)), + mode(binascii.unhexlify(iv)), + backend + ) + encryptor = cipher.encryptor() + ct = encryptor.update(binascii.unhexlify(plaintext)) + ct += encryptor.finalize() + return binascii.hexlify(ct) + + +def build_vectors(mode, filename): + with open(filename, "r") as f: + vector_file = f.read().splitlines() + + count = 0 + output = [] + key = None + iv = None + plaintext = None + for line in vector_file: + line = line.strip() + if line.startswith("KEY"): + if count != 0: + output.append("CIPHERTEXT = {0}".format( + encrypt(mode, key, iv, plaintext)) + ) + output.append("\nCOUNT = {0}".format(count)) + count += 1 + name, key = line.split(" = ") + output.append("KEY = {0}".format(key)) + elif line.startswith("IV"): + name, iv = line.split(" = ") + output.append("IV = {0}".format(iv)) + elif line.startswith("PLAINTEXT"): + name, plaintext = line.split(" = ") + output.append("PLAINTEXT = {0}".format(plaintext)) + + output.append("CIPHERTEXT = {0}".format(encrypt(mode, key, iv, plaintext))) + return "\n".join(output) + + +def write_file(data, filename): + with open(filename, "w") as f: + f.write(data) + +OFB_PATH = "vectors/cryptography_vectors/ciphers/AES/OFB/OFBMMT128.rsp" +write_file(build_vectors(modes.OFB, OFB_PATH), "seed-ofb.txt") +CFB_PATH = "vectors/cryptography_vectors/ciphers/AES/CFB/CFB128MMT128.rsp" +write_file(build_vectors(modes.CFB, CFB_PATH), "seed-cfb.txt") diff --git a/docs/development/custom-vectors/seed/verify_seed.py b/docs/development/custom-vectors/seed/verify_seed.py new file mode 100644 index 00000000..e626428c --- /dev/null +++ b/docs/development/custom-vectors/seed/verify_seed.py @@ -0,0 +1,35 @@ +import binascii + +import botan + +from tests.utils import load_nist_vectors + + +def encrypt(mode, key, iv, plaintext): + encryptor = botan.Cipher("SEED/{0}/NoPadding".format(mode), "encrypt", + binascii.unhexlify(key)) + + cipher_text = encryptor.cipher(binascii.unhexlify(plaintext), + binascii.unhexlify(iv)) + return binascii.hexlify(cipher_text) + + +def verify_vectors(mode, filename): + with open(filename, "r") as f: + vector_file = f.read().splitlines() + + vectors = load_nist_vectors(vector_file) + for vector in vectors: + ct = encrypt( + mode, + vector["key"], + vector["iv"], + vector["plaintext"] + ) + assert ct == vector["ciphertext"] + + +ofb_path = "vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt" +verify_vectors("OFB", ofb_path) +cfb_path = "vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt" +verify_vectors("CFB", cfb_path) diff --git a/docs/development/test-vectors.rst b/docs/development/test-vectors.rst index d2e9548b..a1692c19 100644 --- a/docs/development/test-vectors.rst +++ b/docs/development/test-vectors.rst @@ -79,6 +79,8 @@ Symmetric ciphers See: :doc:`/development/custom-vectors/idea` * SEED (ECB) from :rfc:`4269`. * SEED (CBC) from :rfc:`4196`. +* SEED (CFB, OFB) generated by this project. + See: :doc:`/development/custom-vectors/seed` Two factor authentication ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -98,6 +100,7 @@ its own using existing vectors as source material. Current custom vectors: custom-vectors/cast5 custom-vectors/idea + custom-vectors/seed If official test vectors appear in the future the custom generated vectors should be discarded. diff --git a/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt b/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt new file mode 100644 index 00000000..2d3959c9 --- /dev/null +++ b/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt @@ -0,0 +1,120 @@ + +COUNT = 0 +KEY = 085b8af6788fa6bc1a0b47dcf50fbd35 +IV = 58cb2b12bb52c6f14b56da9210524864 +PLAINTEXT = 4b5a872260293312eea1a570fd39c788 +CIPHERTEXT = 5c460dc6a83060ee36ec55c5ce6448c1 + +COUNT = 1 +KEY = 701ccc4c0e36e512ce077f5af6ccb957 +IV = 5337ddeaf89a00dd4d58d860de968469 +PLAINTEXT = cc1172f2f80866d0768b25f70fcf6361aab7c627c8488f97525d7d88949beeea +CIPHERTEXT = a6841e5e4dea28f28d7a83031442c86e5b68d1048cda42452964df577d3c0abc + +COUNT = 2 +KEY = 0a8e8876c96cddf3223069002002c99f +IV = b125a20ecd79e8b5ae91af738037acf7 +PLAINTEXT = 4fd0ecac65bfd321c88ebca0daea35d2b061205d696aab08bea68320db65451a6d6c3679fdf633f37cf8ebcf1fa94b91 +CIPHERTEXT = 4081ec9257303ae208eea0411d7977eb82e3b8d4f2d03d299f98fbddd519812c2bbe7af6d5c13b8fa5b15f233911eaaf + +COUNT = 3 +KEY = b9ba9fa32cc491d8ac2beb5f99193d57 +IV = 95511452b71e53e93afad07ba1aa4d98 +PLAINTEXT = b40382705aaeea41097c309da6cd06010f15e09c0130fa4b3af69cc8da109d1f0f0a2661f1a8b89bab7e7009dcbb8a883d46254a830c45cd87981e0ea4e490fa +CIPHERTEXT = d9add2885d52163ff04060b8ee46a6e02374af2f895e28ac6d2a964ca8e78bcc9e4e2d4a7a4a11cce7a605a5c0b79c7b8f546ce9159014cb4b462454de902646 + +COUNT = 4 +KEY = 5947bbd78b06bb5ea2fc67ed7b24216e +IV = 8e4722ad2230b15f2eea302173bc1795 +PLAINTEXT = 9e69423653c20c982794ed35d63c1a78e8ac14f37e1888ae4bf273bfe119891b2e4ed8ac46e7a9a463c7a710298d43b02f0c5606bcfc08adceeef2ec61867f8bede498e53163803f2f86fc58782fb841 +CIPHERTEXT = 48af72fe5b7449786965500fe685b9ebbebd15b0afcc9ecc8ce424a931d55462c52dc2cfb41eb17f3cedce1ad1546c348a190846510a427216230575245462b61161c1ef7515e209bc809b66309521d1 + +COUNT = 5 +KEY = abce650e78f969b3b210151c74117fd2 +IV = bc4659fbb7073c1f2185cd8ac5314bd1 +PLAINTEXT = 322eae07df5ad2ddd64bba34e42d30c1b884f842e71efa123345a3fb0c39884c57dd4c2c6fb0c42e69ff5a269d59af3a6144853c182edb376ca65947d7ccefae6806ba25c4f527706ba85a353c0fd10e3cb244dd93a2d060d7b055058dde1dff +CIPHERTEXT = b343343a7f0fd1c0874c8c43cb4078c6da6b6691d1747a6c583f0b93e77d0b1b58e605f80d2f9e0f06d61f75cb03b81f543f5f309aa5cfe3c1d39359be074383d9159bb0b3e51e7b7742cd439b355926589fabfc7b45bbcbb81d84828dc81947 + +COUNT = 6 +KEY = 9f56e19b09dd3fee0e110f71e9967b7a +IV = 1155cf4231bf7ac55d5e6eb27a974fad +PLAINTEXT = ad1e4d3162a5084f581117639a13fc35df5449625ffe0f01e57d9a8726875be8515926ffe7449e30cd69ed4ca0c1b8b4486051c2d0fa2f6474a69c0afce2aec349d778a22edf81678145765b714c1b7c197287da56f59141d6978618729e1d89be20ace3de7d9b3c9b2d195ab6bc0fd4 +CIPHERTEXT = e5f75f794db9d60f1a8f64dcb241c4463b0bd8ecc57b4aea8f87db1478debdb02b9fb9a9f159b24a2b292681683394bd067fe07026043557391aa59f77421497205a44896bde4e74af04ac231f7918f66d65bf5211e3ff9d7628feee17331a9260b7412b561b1f8eaece42532bff6de7 + +COUNT = 7 +KEY = 31c485c996d6ceb2d17e0aa05b2490e4 +IV = 8c37f33405051b4c50abd16c6456643e +PLAINTEXT = ac68de6a2c2144c6b4fd975a8dec93447391e7c9a4fde63d36be7f23ad186f96cd92b5e8adb546880d100329e97fe8204fad860e6dd8b3c0eed4805387536b9ccc63d6c74938b83dce2c93cc0a04a6025b7563d9e5e7239ae27819fb3844848a51e4294f273401ad9e592f8a170334b042f0667233b29f92b9b13262eb73232a +CIPHERTEXT = 9775a5c6dab170473a48e938e4bb036533476535c545ba27e149a2efc4f37dd4d8d45f769e74b080122077bf6d049cc146040bd56da957d644cc37abd2a20d795ad0b4a31f44f94e8b2bdeef0b7507c05a4b12dc84986d8e6c2beb1e5f6b16a057df782da903fd4bcc913e3ffc5fc75145a329e57528be7c34a92542cb80eab8 + +COUNT = 8 +KEY = 556ccfa360ecb5025032dddb124cad4d +IV = d54c6fdcc85dc0a28c0b06205fee8854 +PLAINTEXT = 71fbf180effac3dca0d69d40e4017dbe50455396f9fb6507ef7df26507de156cded8edd41a05fb25f352cbcdf3b2d770f90fa87f84863e0c2ed3b2dd770a1abfc489ad1ca82a28d061bd7039a6b5788da021657136def0c78d0b0cc7cfbec9512cf579811fd01185f3fdd2ab857328be4b63d293956b43df130e484b9861eccb1d06992b095e7febb0fb394c1954aeab +CIPHERTEXT = d43fe04c874d091a7953ed15589f7b4b6b509c21746a366b0c32f135a9e84c6c2a1bb8d2f6a3a389f95b903db62030b1ab54ff45b1a837ada720977944707fe8ea159714f8e7cfd5299227249aec14920ab5a877a57e4b23a951bda95b8f98b908a55f73792f86944de919b0a18cc50e13c549b6d7da8806062afb125c388f02d914548f5747b1bd227520018d97066e + +COUNT = 9 +KEY = 7cb81fc4b203b0fa9bec49759bd515c2 +IV = 4d5e2fa3bf73f488b3e7e125f03dfbbe +PLAINTEXT = 362789b376d85eb8181d4eeea52d42e873ce7741c11a2f820383a7457b15489b09fb21ac4445959dc9e851b7d40682c50d7044bda46a5da39fae2bab73b3db9ed22edc7ec5da936dfa7451cb5f0a829ff0762738cc2686148f1e1f00dc3fe38139c9a173201fc1f052ca34736fc1ab3dc4e707f864d6119b7adb6c8ddd41c80de5d357d17e9c85ed7af1e4f72cb2656932ccce469202680109eef89a9f42f10a +CIPHERTEXT = 87fbc595b52e0c299420338f422fabd264665e5457f1df907c5a2c95fc2ed4d04c29296467123223414b0e0223dcab3d93d5740f2e498acf20f50a59d267a734733c946597c2e1e54d5d76a6cb552b264f86b1b2e135cb601f73c5ec3237d2d341f09064e3e68cf08e9e770ced087c94e54b9aba36f01cd10596615cd02f1008b3701084cddfa659fc2b7293a605c1c273f54662894d6d6ca86256d915d4fb3f + +COUNT = 10 +KEY = beb622d0228cde29b342bbcf4c1c83b4 +IV = 75c282fa581d9c671edf5d540951b680 +PLAINTEXT = 860476c81685b58e71e2599efe083ce5 +CIPHERTEXT = b8d5730f28bb21d79345e2668f9b4a91 + +COUNT = 11 +KEY = c4666081e0b0eddb10a9a607c807378f +IV = 5f23623288e4a41b03186024755a10ea +PLAINTEXT = 2fd02dab9054248073ebc0b07aed383756ccfa4fa6298722775be6a9b4ed27a5 +CIPHERTEXT = 6bacb9856757883e22e04085deb6dd3ed3694dc6a6ea4445dd2f2684e465e6d5 + +COUNT = 12 +KEY = df010376a6b03279338773a70e012382 +IV = 67455decec549365742525d8dbf1fed9 +PLAINTEXT = 9b9c3dea553ec235db0011b27191544171845b7bdda0dc04a089583959bba5ab7048f8ca87eab073a8b824fdd4e82e40 +CIPHERTEXT = 8871858efc277d3033d1c95c53a3fda31ba8d17b9f641922ef69de0277c80e914f25a8f3366106b22efef2a5c5355504 + +COUNT = 13 +KEY = ff01aa4f7106c6bd24399076f901a530 +IV = 089b4f6054eeeef76d4e13f75de64f7e +PLAINTEXT = ae9cb9dfa305af83e95a3b2099f70907edcd49fbc6efc5ebe744184c76b4f56bf35774f3fe215e1c8ee42172a2dd3e6f9ccd3d9bb044325e61a6bb97e48e9986 +CIPHERTEXT = 676537bc02ad0fc270ba547f5640bcdb125bc95d9db54029b4ef32b83da838773c0750300b4384fec116732b76f654228f6c942f54839a5a2101c1fed1eb62b3 + +COUNT = 14 +KEY = d33d4062ab32298eafcca86b5088d5fd +IV = fcfffce8b020240f9f694adcb8ddf213 +PLAINTEXT = 1fe1318adb99e6d4fced292902fe8c831ba488a43f85964d6ff54b322663b380bc99fed15568278cfe1d0af795c71355bf65e876855763655eec3abf3d4b27a0341d607f4bfbd82c8900fd436f7c4186 +CIPHERTEXT = 1898807204f12402a0ca6f11c2ff2a929123c3c18e02149740d6bc91f6a626e79b827d3fb877e1821c861b3e7a361c0fae457340692425b0b8f21447e3fadf95e60819789f2964fda844bd3c508d06c9 + +COUNT = 15 +KEY = 47e13544a7bbf74dd68ab5ce66e5bdaa +IV = 69480b4dd38cf3b47e2b7652751395ae +PLAINTEXT = 3e2e583a3a0389ca324f2aaa52b7823904ab288dae562995cf1d70c796d785fd361261434eea480ceb3d369d969652c7ff194931c0a9bd978f5ae4094d6ef32d986a092c580ccbf865e5095a7b80559be13f842f9bea9e42a3a01ef8a24a6526 +CIPHERTEXT = d5d73ef41aea9daa98d04b309299809408eeebc8de56b2258ba97155dc0bf54150b5338be0aac01ec9a93f49c3aa193d9c74ea5fd0dd4efb9030eca445dd52784cf5f18bd4e0f5facd56620df9d66ead9de1b6fc86f8c3d87f69866a490f5ed4 + +COUNT = 16 +KEY = ae86823695b48e8c612ae5a01b597f97 +IV = b26eef7b1d14894c0c6388ce5273f4f2 +PLAINTEXT = 569a910bc6aa97b8939ca703fc10ce0d171625bc735a1fea7148650541109d955b1b686c6cc404b2d3d92ad9faaff217dc7b31b038b770959aeccd1ca55d650364fde51df8d4f0aeb05fa364f5028f709c179ca6df0bdfc1cb850f238d755ac44a733fce558402be0c70bc0871b8e62f +CIPHERTEXT = 0be12d90fd8536ef7fa415f0322dc833891e97d4e6c5427e743bae14fb2776177ad9bb8198d344e74b2c9fe720b67c35965acac1436c5f8e328fe86b4b65d389d8e060295a1c48c6de9a06835e677adea60d3ccc589754593bae6ac9f847b8f0c39253db2e863d5ce1df024f504cecf0 + +COUNT = 17 +KEY = b85df29c9244229835d73441dc37555e +IV = c1375430efedb2d311a37bfa5ad2110e +PLAINTEXT = c232a0bbf967ef28b74e7b809c62bc8c1cf2d52a273a84162900da834448fd567870471498f29770619dec504922e379eaba0d3a712602583d00279d8fc6a6d568cb94a330039a189ed5802abb7a2898c13ef89c00d73fca9a2f2ffc2107ab498212c56835c0fc26f835a69c00bb3eaa695ac20e8bdb0f5b5b6684d02bee8fb2 +CIPHERTEXT = 7b8b2a3a38328276e2739ecac4c876633e5cc8835a46053fdbbe0bc828450bc6b2e9cb31515edbbccf74a1128213d64577eec37eff3377528dafdd14bcfe2d8cc988f7705622893d3691126ed1de20a1ae7397e3dfe78464c2d310a452608799b024e7725394b309b9def5b2840e8ffa9fb2b9da92fe2df24769c5250167f4f2 + +COUNT = 18 +KEY = e96771f5f20a89ee871261d2d18e1e46 +IV = 8c664a37d245d26c0c55adfb424758ba +PLAINTEXT = 8aaafd56c5d5d54fbe16f115c3216bd1f4376666931a2ef1ffc5468ad12150c39250dca2d63c6ea166bb0ef4aaa3d5849c1f9c621c55826a1ca362f03bcba4dcbd654b300d16519710130e5360bd949aaded6a648f96dd8937a77287d4a4ac2941729475b635b9797476b4dca4171787ff15882d3b4872ed0999a7546dbb61698e8348f70e4a14981a78156150484532 +CIPHERTEXT = 18d65e3fd66b6aef76354325c323f0cd45f6c280335b890ba6822437125b86baf0f8576039e074aeb557f73dcacedd94fe134219fda1b5fac5e4d02f5b582496e97350926902a43dec11b09d12d294b7cc815eb98c4b5f693dd341a7d47a71f6c1a9af3981c97bb13ef4abc8a54aaa0fd601e2cd981d3f49bd8e958b3fe5769a76264784116038c8086af3d49d9429bf + +COUNT = 19 +KEY = aef49da33f538ee66e178d4b6121055d +IV = 842566e68b61ff7bf001f2642da62f64 +PLAINTEXT = 415991f65e1a95040cef9960556f61e617827c30c74bf353cdd86173dbe4cc983a2ee6bc8ca6cfb71121e7b0d0178f2e13445c710dcc176b781201971171f7489f18faf110f39accd1cf08c85a958d7698b116f1c0d75812ac9b0b39aee7f7159ccad8fdae9b99f2d695eacf12c6469d5b51a34de26eac73613dcb2f77122cb1f8dd5162786a12052dc7b6dea6acc4989dcc7eafd9374f6c29697c74749ef16d +CIPHERTEXT = da97a99e4734c2dfe541642e30b9cea9263f5ee2055d468fc519585c4072f3163eda6cfa5014ed6b2293bf6d296cc7406530657b960072fa8aeafb6a7192c782e73dc4bcb02e621ca6a375d318ec98e7998339060650940d7d9d5e89f95a15e1d673b4c7132be9875bb339a30a61b57050b2c91e57a4b11f7f00c0df906edc508a5a54d218e62de114e89b6e1c137c3a40b55130343a3527dd85d8f9c87a1fc6 \ No newline at end of file diff --git a/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt b/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt new file mode 100644 index 00000000..1ef76de2 --- /dev/null +++ b/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt @@ -0,0 +1,120 @@ + +COUNT = 0 +KEY = d7d57bd847154af9722a8df096e61a42 +IV = fdde201c91e401d9723868c2a612b77a +PLAINTEXT = 81883f22165282ba6a442a8dd2a768d4 +CIPHERTEXT = 78aa827fca58956065e1dc0ce17bfb80 + +COUNT = 1 +KEY = c9f4ce21b4c7daaa4f93e292dc605bc5 +IV = 5e5a8cf2808c720e01c1ed92d470a45d +PLAINTEXT = 8e19c5cacd015a662e7f40cdecadbf79a68081c06d9544b41c2dd248e77633b4 +CIPHERTEXT = 814d987a07282f950fa9a6559e5443f0826243a630458327e5c20440d2a50a0d + +COUNT = 2 +KEY = 7a70cc6b261eeccb05c57117d5763197 +IV = bb7b9667fbd76d5ee204828769a341b1 +PLAINTEXT = 823cbaae3760c85512a3c83fd60bb54b7cfc739b295b63e05ef435d86e19fd15368c89ff08a0f21ce89a728ffb5d75df +CIPHERTEXT = edeae6665592ab617f52e495e9177108399a2d073e0e7d9e4ede0545bdf9294f32a1ac2f4c915b1432024b5ca05cf91d + +COUNT = 3 +KEY = 85dbd5a6e73681a51a4a7d4e93ca7d0c +IV = 89d897c5aa9e0a5d5586d4b4664fc927 +PLAINTEXT = e3dbfc6ae1a879870fd22644c8135fe063355dfc0a8dad45c9c6e052e6e085cf717754dc1b49acb04cf340826ffb0da991138f022a9c34923a6a116c98c7d3d5 +CIPHERTEXT = eb97edb484801398304d27fa5512417cf63fa76c3860c738cf4866dd9a024bdd2e4029fe1bc83587b452686edf971dae2390ef0af2a00deef79216b1104e43f6 + +COUNT = 4 +KEY = 18b9887a34438fb2e759027e54e334b6 +IV = a5be8621e58dae325c6b868fd783e2cd +PLAINTEXT = 8cd659df925950b516f737fc92d2fafa008c008c9dfe0e75ed2d68f6ff79399ff2183464b8c37cf31aafc145fcbfac73e3f87eccb435f424bf1c6d6efb504e8e93e8a668a2210e3d3b4fd437ad1a5842 +CIPHERTEXT = ecee4794867f81ee0ab465481f160521a918121e02308744e65cbacc4c369ef0b98ff6feaca41a8979045c4bd49487b4f3437376c4b6f43536973ba54bdd2b7170c7136f92e87cba79b892616b80fe10 + +COUNT = 5 +KEY = da52c0e4609e82ee926174a9eaf90b08 +IV = f2d0c5e86b4ddb40d30713aaa5a153fe +PLAINTEXT = 91d6c95a614cf85de16eeabe5976c2a2a9d307042f79a7aaeb7c3c57e1dd8d43bfa458c8c02e4f5ed0c960c9f17e3991dd2e0cb3ede18f96395a484001ef07ca4c97b411ce454aaf0f74242aca03786a93442171bd50a1467b9d663245d24c2f +CIPHERTEXT = 6207d66ce45fa32922bc75c14bd1a2d44a8daf4e655f9b9934f7f41de98337d3f6aa6175f43d056b6be3decb791a324c80a84983b026dcdabdcd1cf93059a238e14ff5c952b740802cd11171f5275c12adb6564532de13194c66532c0cc17663 + +COUNT = 6 +KEY = 56d6f7e2a870b92d55ff8d6e9c554d2a +IV = b512f0e11e27fd1a94aa0c697bb6da5e +PLAINTEXT = e62cdeac43667749701314c546f778a4c758e4f55760e7d729c3783cf7a242edf6ae3fcf0990886434896c945455bfae0e5674aa06ee6fb1512d94df2cac2447eeb849373bb3efbe7bb8d66c8a7ee559b17fc268d6599fcdef7457cdbde5b9c5b692236e4397545f2be97bd44f3993ad +CIPHERTEXT = 22632b7abf711ad0e66f1834e5984609df0fdf0903a7180c713e1c084812913c31d1fb3469c777a94e5115fc1c4a081283fa2d28a9aec1b6f46738d8bf04ab6b82505b2063153a12dace49000aa9ac41ff3cdf9510a20183f934d364f52cd72cc6b5deb192ca5bacbff471565ae2d563 + +COUNT = 7 +KEY = 09f216ff78dfe419dfcef1a855473414 +IV = 722174c892d265291982c6f042ced145 +PLAINTEXT = 11f435e7e3656fcfa8e0df230311ca21054e84e13c8590e7ec7309f59c174022d467a7302641ee1b6ba46bee4f20bfda108bb78982f670b057dfbfe49da9cfae88490ce17241402b20d2fceb476d3a424e6c406d56ffc85278695d584d6c087cb4012ca2cf4daf284fd15ac1f2e183814957e934bf88dff4d777adfbb54933b5 +CIPHERTEXT = d9a5d3bc0a558b86046877a9030a09c537c2830b93dd9f56df91233f3b403fa39dc820d5eadf46ca016ad130018310a4e31e0974bb233085236340e057cac0d6968f0fcceea780b9da7bfb297e8593abd242e382e7482e9c4679b7cb720798c17522c5cf4db9004368f609b5280b5421f30a39a6659d51ef8feafed739959441 + +COUNT = 8 +KEY = cde9b69eea2b6a5588457e35e0a08803 +IV = 52323b54d69a62fec0689baee1b3ec63 +PLAINTEXT = 967798995af6f435b3a6f92bff77a11fa44d1426ae0f6e7dbafac27b123c5fc419be52c0ea412c4b3cac05ae89a4c0ce6f5e91a456b1bded5370a1234cf6f6ab5d0253507bc6f3f0573ab97585b67107dec059812323e021e341ad839ea9e3d02aeca43356add48ccef81f693ed53d32ba1c74a35e8a5f7f3115ef834f7daf9948244c4fc31f5487678d3e70fb27abb5 +CIPHERTEXT = 1dc92191514c65141edb04acc655cf3c664ff5727d569b636787332ef1e34b1afd4b8e9acf4b745530fa7b3094f45a32d82b0e2be7cc035a1dded75f4033bcc4727dd14303761a9061b8365a8893e2569d045f08d2b447c35d2f927ac6103730e3aa4e81aef54c426320d657e2aa169bf8884ef0541074e9c08793364646a9a99df0e5022ea3740361096c3790707b3d + +COUNT = 9 +KEY = 939aac71e337709855715a57e3a4648f +IV = 493509b56a92f14040eb9b66a188bc57 +PLAINTEXT = 9c22efddc7de496a916d15d710de374d57478126ed64c9ad7e823e24d19bfc0cfac3dda0d1c292a3a203f35b26ad94deb20f998caf41cbdd4a08eb5d6cfb46f4ede4896b0569d72c03ec194941af95c0573cc3fe8f045ba19946b382803248f3dd4f9a454b1a3e8e1af02ea8482d637dac96a68275f4a382d3023f9df4892b9032cab9378b1cef5051d6db81226f259d1be4eb23495ac807600536b5b0481754 +CIPHERTEXT = 5bf691be73fa80ebdfcf9ab0657729c9017505cb7163afb35c120915e111d2a2978e373164579c9ffc66bfe189ffe1fbe641d45c8d91a2bab418d8b549eb027721d241a9d80e298c79c75d7db8dec3a8d56cf27d33431c07ac4128b1068684e1d99b1ff23f83e8badb704600de7ae95cbef8029f101bfa852ef5f69cc7a7427d0fa3abd7de68db07de0ba4c17fd579ffcf1be3ad9e5f724c8e9c87c079f2afec + +COUNT = 10 +KEY = 8368189d41eaa20d06a3a2d2a91e43f7 +IV = cf04ac0e4733952ba538711f79eef8ca +PLAINTEXT = 696ca57339840fb3c150e0c111d9e13e +CIPHERTEXT = 03f102dbfb29bcde9e7d16825de64228 + +COUNT = 11 +KEY = 5124c6fdb0856ded76afb6febdaa981e +IV = 937ebdeec379685a71d466703f788ff7 +PLAINTEXT = 5a5928dd09e78a21256eadb062630a3f0b47ca2376ccae314948143fff2512d4 +CIPHERTEXT = 841cca2b58abd8d0b68fa2d3949bc943a105427f2deb117572de28cd0581c54a + +COUNT = 12 +KEY = 6a8f6487e76058bc5a126276e48fdd77 +IV = 6e75d8b8ac0976143ea103a710caec02 +PLAINTEXT = 424ddc343067612fdb426920f40ab4d82e3d4f9485b07fef91617556d3093874840e8110ff375b7a68f98c471ca10acc +CIPHERTEXT = c9123902ac5cfd3f0151b4e95185815ddf4ea92baadd91215007c98ab3dcbae14ca5cfcb5aafeea9939b998e3f4ec276 + +COUNT = 13 +KEY = 01963d44aea026b2205238454d5bb73f +IV = 9442a6e0f3a53f10b0ccf5b0ccc1793a +PLAINTEXT = c54cfacd953736a2d8db0b8b63b555253a0ca6f6e05f2e918d18be95669fa85609f827d6da014add2964626670c202b195248fc986372c92adbb10c0e7c36e04 +CIPHERTEXT = d6592ec2f649ea123bce88818ebbbb74d3b6b55a987ab01db21b5ef91cf8a9fff6851a6ce523d2607da048d9e0897ff672d787433cd54b6c9c25a7a5aeea1538 + +COUNT = 14 +KEY = 4ea87b0b346054c097edc5601b782870 +IV = 9a3e23333b2b2de7eceea67a7ca97641 +PLAINTEXT = 0c7734310c5ca82b520bf1e0a1614c7ddd0c002711ef0b239de8fa256e15b32056b992747ff3a3a310d52e9df36275d9192dad61caa16715744552c865c5ae9477a70a2c3a02a01ba176b927445094d2 +CIPHERTEXT = a91c4fb4f9e05adab087db1fd125b1f42dd26953bb3b3d722adb443c0a4b927ef83c62ae3ef8e1f83ef8e6b50a3b8caf7a623fa9d23685cda5851139a69c449d8b94877c3547c37e8c246738c6183b50 + +COUNT = 15 +KEY = 1956f40b2334a6546b3071f2d17f4a59 +IV = 765cfb560c46777a20cce091232ccaf2 +PLAINTEXT = 045ad66c515d407ab73ea0c6f6ae869872342fc72956a659945454005e37c76ed07df996ffe1322840cf23843b34346a1e730ab721ddceaf362ed256054c105ed581a80c04ef22ae1b5eb8742c6e3c9c0e0e29fad211b4f40adc1520f7c6821e +CIPHERTEXT = e77614bed3d8fc7a22355efc2d1401cd1386fcd6585b472a500278c56108123af13bbfffdd87bc963634f28ab8355061f23c6d943fd226360685b5fda3eee847d64154af7f48732f37c3a4f740ed73dd276dafc9a2e3a22f381a61501dd89b73 + +COUNT = 16 +KEY = 4e47e1b5c1b489295d3a2bf049f4be2d +IV = 83fdf064d213df417ba0e75ec517bf63 +PLAINTEXT = 94a7bed3b5a158e85f9e4778a7de105ff4f3b2a61c2fead82cbe949d7a4ee961a6c62949ba2c69d513d836a455b612c2fbb6ca243a0a18a853cadb6b73b600192de1d51ddf80030718b079fbb581073a06b66ba4ad524d3d09efaa59e6919bca15b2b92bd9f8c17d6e463f4ea5fd5f5e +CIPHERTEXT = 6a64fccc9e7f00bc696e09761c1a059557e02d16b6d407931b1abde227b6c42e512eeabcf5d01d7a662da46c1c87ffb7575607e1b88a755c7d469c55f7cc98d4ccf9f3fc3a29e22b7e16052cfe90c61132311853547885d7a78cbcdc1a26c05953d3f45735901d44dad6710d67712c20 + +COUNT = 17 +KEY = 613485e5bb84b91cdd0ca02f8d83e0bb +IV = ad8a7564f6ce8abb6949ddb7d7186580 +PLAINTEXT = ed5068003163c424ae9a8e51e3d77684c69073a824dc4721568f7528657c3dd28d66219f398ed57105aa35cfef3ac078eab30ae0f3ed752b0e320b099ea42b156f818904c4b6c534cabde53dfa62e7b74518a8bca3f36ee85b130e8520d38c006e6adef34bbc8df56b757b500d703e5777aa545c4170404754f03dbf22c9f0d7 +CIPHERTEXT = 63e2f4b237b0635709ed42bf7ce29a0a828fd52f157dbed5a7b78d5afb8cc780f009c7982a31eb4db2a2d30d80622fa84c430fd69c68652a2876f984a3a795d952a8ed540d6ef936ba85ce7932523e47ec6e9865ffc4f8805232039b79c5fbfbfa8c18d7b4aa655c247357b5b3b2e960e0eac46a13f52c5646c396887500b6ad + +COUNT = 18 +KEY = 8198b36e880cf50dbf6724feaaac8688 +IV = fbaa2882a2a4acdb299e4f82c93f2af7 +PLAINTEXT = b2516a356e437513f0df83938afefbe9f9ef1ec879797997f31da96a1ea7a15d395ecdb94b7fda14cdc0b75c171784fa8832d574b64f9450c6be25dc83b93d3bbf0145a661bf4db775282b98649b64613aeedb8bb770f67cc3421ac6761e5d763c21ac2d1e729e4597ad7fca9fdc70878b26634df78cd0f36fb3b138a1357915abba4ff5f8dfaef268307022f2e23528 +CIPHERTEXT = 40396cb65cc8eda8c591e671cbf92889588fe593fbe6e8e884a9d58f90df8505025cd0e268c368fc4aed1e8a5be2359a72d087775f85f6944b0cf731e8051cf80f0b9aac8073f82c01e0306077bfbf547d9074b8cf2a844d778371b0db8c7d8358596404a4047bafc3e4c9bd424860dbe3b1a54bb68f0461e8612940695b795a1e5aad72befb79ea8c5336d01758d077 + +COUNT = 19 +KEY = e30b4c874c4c4f6e0cf1f8ef58e5d375 +IV = 7e26f07f8024343cec35409e71e0cd8c +PLAINTEXT = 8ceca4dc346cfd6b15774e082db1a89497b7d85d6b5b7102e77417f7a243fafe17118b7a3bb49d1657cf61b866da395a5b3f349183a53dfa11fc0ac053bddff49dd472ee55f5e43a2f8bc785e2bc420300694919ff7bb43feb75a9cac44ece96f679e618db5d7433af12dcc7e0963ff10b45d835f9a8f42627e7f3fd5038932685965ad0e183f5955e671fc2b878dd51051eedaf85310d1e4e8f75f2decf36c7 +CIPHERTEXT = 6328ab2e9039edcd034499d13561b8866ff4f528a375365e84e1a2de9d2e58cd6b6e9cad7215d105e0653a480dbc3e69d8ba496d4333515e879b20df1bc9f77382b81db4d846fbb9e93b60b80558322c6b7e1936076295c842e262f84dff7b47e406a62c44900e6d1383199deee77215ed4c27397d4f01acdbd4d54328e538770e87d9e4900602a129f405cc1f8800ea723cdb109afffc9d04da2b1403a8d3e7 \ No newline at end of file -- cgit v1.2.3 From d4b475acca3d33f88cbe73e30ef2219d8feae120 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Tue, 8 Apr 2014 11:19:43 -0500 Subject: botan is just as much of a word as openssl --- docs/spelling_wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index bf5ae05e..02b9f9ef 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -3,6 +3,7 @@ backends Backends Blowfish boolean +Botan Changelog ciphertext committer -- cgit v1.2.3 From af420bd6991d2ad83dd0672d5e1de34ca5ef549b Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Tue, 8 Apr 2014 13:13:32 -0500 Subject: add headers to seed-cfb/seed-ofb files --- vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt | 5 ++++- vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt b/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt index 2d3959c9..65969846 100644 --- a/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt +++ b/vectors/cryptography_vectors/ciphers/SEED/seed-cfb.txt @@ -1,3 +1,6 @@ +# SEED CFB vectors built for https://github.com/pyca/cryptography +# Derived from the AESVS MMT test data for CFB128 +# Verified against Botan COUNT = 0 KEY = 085b8af6788fa6bc1a0b47dcf50fbd35 @@ -117,4 +120,4 @@ COUNT = 19 KEY = aef49da33f538ee66e178d4b6121055d IV = 842566e68b61ff7bf001f2642da62f64 PLAINTEXT = 415991f65e1a95040cef9960556f61e617827c30c74bf353cdd86173dbe4cc983a2ee6bc8ca6cfb71121e7b0d0178f2e13445c710dcc176b781201971171f7489f18faf110f39accd1cf08c85a958d7698b116f1c0d75812ac9b0b39aee7f7159ccad8fdae9b99f2d695eacf12c6469d5b51a34de26eac73613dcb2f77122cb1f8dd5162786a12052dc7b6dea6acc4989dcc7eafd9374f6c29697c74749ef16d -CIPHERTEXT = da97a99e4734c2dfe541642e30b9cea9263f5ee2055d468fc519585c4072f3163eda6cfa5014ed6b2293bf6d296cc7406530657b960072fa8aeafb6a7192c782e73dc4bcb02e621ca6a375d318ec98e7998339060650940d7d9d5e89f95a15e1d673b4c7132be9875bb339a30a61b57050b2c91e57a4b11f7f00c0df906edc508a5a54d218e62de114e89b6e1c137c3a40b55130343a3527dd85d8f9c87a1fc6 \ No newline at end of file +CIPHERTEXT = da97a99e4734c2dfe541642e30b9cea9263f5ee2055d468fc519585c4072f3163eda6cfa5014ed6b2293bf6d296cc7406530657b960072fa8aeafb6a7192c782e73dc4bcb02e621ca6a375d318ec98e7998339060650940d7d9d5e89f95a15e1d673b4c7132be9875bb339a30a61b57050b2c91e57a4b11f7f00c0df906edc508a5a54d218e62de114e89b6e1c137c3a40b55130343a3527dd85d8f9c87a1fc6 diff --git a/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt b/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt index 1ef76de2..a253600e 100644 --- a/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt +++ b/vectors/cryptography_vectors/ciphers/SEED/seed-ofb.txt @@ -1,3 +1,6 @@ +# SEED OFB vectors built for https://github.com/pyca/cryptography +# Derived from the AESVS MMT test data for OFB +# Verified against Botan COUNT = 0 KEY = d7d57bd847154af9722a8df096e61a42 @@ -117,4 +120,4 @@ COUNT = 19 KEY = e30b4c874c4c4f6e0cf1f8ef58e5d375 IV = 7e26f07f8024343cec35409e71e0cd8c PLAINTEXT = 8ceca4dc346cfd6b15774e082db1a89497b7d85d6b5b7102e77417f7a243fafe17118b7a3bb49d1657cf61b866da395a5b3f349183a53dfa11fc0ac053bddff49dd472ee55f5e43a2f8bc785e2bc420300694919ff7bb43feb75a9cac44ece96f679e618db5d7433af12dcc7e0963ff10b45d835f9a8f42627e7f3fd5038932685965ad0e183f5955e671fc2b878dd51051eedaf85310d1e4e8f75f2decf36c7 -CIPHERTEXT = 6328ab2e9039edcd034499d13561b8866ff4f528a375365e84e1a2de9d2e58cd6b6e9cad7215d105e0653a480dbc3e69d8ba496d4333515e879b20df1bc9f77382b81db4d846fbb9e93b60b80558322c6b7e1936076295c842e262f84dff7b47e406a62c44900e6d1383199deee77215ed4c27397d4f01acdbd4d54328e538770e87d9e4900602a129f405cc1f8800ea723cdb109afffc9d04da2b1403a8d3e7 \ No newline at end of file +CIPHERTEXT = 6328ab2e9039edcd034499d13561b8866ff4f528a375365e84e1a2de9d2e58cd6b6e9cad7215d105e0653a480dbc3e69d8ba496d4333515e879b20df1bc9f77382b81db4d846fbb9e93b60b80558322c6b7e1936076295c842e262f84dff7b47e406a62c44900e6d1383199deee77215ed4c27397d4f01acdbd4d54328e538770e87d9e4900602a129f405cc1f8800ea723cdb109afffc9d04da2b1403a8d3e7 -- cgit v1.2.3 From 10a2fa4b517062bb3e37d4de2ba4b977e49e6cc1 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Wed, 9 Apr 2014 08:54:43 -0500 Subject: linkify another thing --- docs/development/custom-vectors/seed.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/custom-vectors/seed.rst b/docs/development/custom-vectors/seed.rst index d26345fa..e8fda542 100644 --- a/docs/development/custom-vectors/seed.rst +++ b/docs/development/custom-vectors/seed.rst @@ -4,7 +4,7 @@ SEED vector creation This page documents the code that was used to generate the SEED CFB and OFB test vectors as well as the code used to verify them against another implementation. For SEED the vectors were generated using OpenSSL and verified -with Botan. +with `Botan`_. Creation -------- -- cgit v1.2.3