aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development/custom-vectors/seed/verify_seed.py
blob: e626428cb0c2e48ff1bcae58eaf8289c925e6365 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)
"cp">define Download/kernel URL:=$(LINUX_SITE) FILE:=$(LINUX_SOURCE) MD5SUM:=$(LINUX_KERNEL_MD5SUM) endef define BuildKernel $(if $(QUILT),$(Build/Quilt)) $(if $(LINUX_SITE),$(call Download,kernel)) $(STAMP_PREPARED): $(DL_DIR)/$(LINUX_SOURCE) -rm -rf $(KERNEL_BUILD_DIR) -mkdir -p $(KERNEL_BUILD_DIR) $(Kernel/Prepare) touch $$@ $(KERNEL_BUILD_DIR)/symtab.txt: FORCE find $(LINUX_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ xargs $(TARGET_CROSS)nm | \ awk '$$$$1 == "U" { print $$$$2 } ' | \ sort -u > $$@ $(KERNEL_BUILD_DIR)/symtab.h: $(KERNEL_BUILD_DIR)/symtab.txt ( \ echo '#define SYMTAB_KEEP \'; \ cat $(KERNEL_BUILD_DIR)/symtab.txt | \ awk '{print "*(__ksymtab." $$$$1 ") \\" }'; \ echo; \ echo '#define SYMTAB_KEEP_GPL \'; \ cat $(KERNEL_BUILD_DIR)/symtab.txt | \ awk '{print "*(__ksymtab_gpl." $$$$1 ") \\" }'; \ echo; \ echo '#define SYMTAB_KEEP_STR \'; \ cat $(KERNEL_BUILD_DIR)/symtab.txt | \ awk '{print "*(__ksymtab_strings." $$$$1 ") \\" }'; \ echo; \ ) > $$@ $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_CONFIG) $(GENERIC_LINUX_CONFIG) $(TOPDIR)/.config $(Kernel/Configure) touch $$@ $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE $(Kernel/CompileModules) touch $$@ $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE $(Kernel/CompileImage) touch $$@ mostlyclean: FORCE $(Kernel/Clean) define BuildKernel endef download: $(DL_DIR)/$(LINUX_SOURCE) prepare: $(STAMP_CONFIGURED) compile: $(LINUX_DIR)/.modules $(MAKE) -C image compile TARGET_BUILD= oldconfig menuconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE [ -e "$(LINUX_CONFIG)" ] || touch "$(LINUX_CONFIG)" $(LINUX_CONFCMD) > $(LINUX_DIR)/.config touch $(LINUX_CONFIG) $(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@ $(SCRIPT_DIR)/kconfig.pl '>' $(if $(LINUX_SUBCONFIG),'+' $(GENERIC_LINUX_CONFIG) $(LINUX_CONFIG),$(GENERIC_LINUX_CONFIG)) \ $(LINUX_DIR)/.config > $(if $(LINUX_SUBCONFIG),$(LINUX_SUBCONFIG),$(LINUX_CONFIG)) $(Kernel/Configure) install: $(LINUX_DIR)/.image +$(MAKE) -C image compile install TARGET_BUILD= clean: FORCE rm -rf $(KERNEL_BUILD_DIR) image-prereq: @+$(NO_TRACE_MAKE) -s -C image prereq TARGET_BUILD= prereq: image-prereq endef