mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
230 lines
7.3 KiB
Python
230 lines
7.3 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import textwrap
|
|
|
|
from .utils import load_nist_vectors, load_nist_vectors_from_file
|
|
|
|
|
|
def test_load_nist_vectors_encrypt():
|
|
vector_data = textwrap.dedent("""
|
|
# CAVS 11.1
|
|
# Config info for aes_values
|
|
# AESVS GFSbox test data for CBC
|
|
# State : Encrypt and Decrypt
|
|
# Key Length : 128
|
|
# Generated on Fri Apr 22 15:11:33 2011
|
|
|
|
[ENCRYPT]
|
|
|
|
COUNT = 0
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
|
|
CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
|
|
|
|
COUNT = 1
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
PLAINTEXT = 9798c4640bad75c7c3227db910174e72
|
|
CIPHERTEXT = a9a1631bf4996954ebc093957b234589
|
|
|
|
[DECRYPT]
|
|
|
|
COUNT = 0
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
|
|
PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
|
|
|
|
COUNT = 1
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
CIPHERTEXT = a9a1631bf4996954ebc093957b234589
|
|
PLAINTEXT = 9798c4640bad75c7c3227db910174e72
|
|
""").splitlines()
|
|
|
|
assert load_nist_vectors(vector_data, "ENCRYPT",
|
|
["key", "iv", "plaintext", "ciphertext"],
|
|
) == [
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"f34481ec3cc627bacd5dc3fb08f273e6",
|
|
b"0336763e966d92595a567cc9ce537f5e",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"9798c4640bad75c7c3227db910174e72",
|
|
b"a9a1631bf4996954ebc093957b234589",
|
|
),
|
|
]
|
|
|
|
|
|
def test_load_nist_vectors_decrypt():
|
|
vector_data = textwrap.dedent("""
|
|
# CAVS 11.1
|
|
# Config info for aes_values
|
|
# AESVS GFSbox test data for CBC
|
|
# State : Encrypt and Decrypt
|
|
# Key Length : 128
|
|
# Generated on Fri Apr 22 15:11:33 2011
|
|
|
|
[ENCRYPT]
|
|
|
|
COUNT = 0
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
|
|
CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
|
|
|
|
COUNT = 1
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
PLAINTEXT = 9798c4640bad75c7c3227db910174e72
|
|
CIPHERTEXT = a9a1631bf4996954ebc093957b234589
|
|
|
|
[DECRYPT]
|
|
|
|
COUNT = 0
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
|
|
PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
|
|
|
|
COUNT = 1
|
|
KEY = 00000000000000000000000000000000
|
|
IV = 00000000000000000000000000000000
|
|
CIPHERTEXT = a9a1631bf4996954ebc093957b234589
|
|
PLAINTEXT = 9798c4640bad75c7c3227db910174e72
|
|
""").splitlines()
|
|
|
|
assert load_nist_vectors(vector_data, "DECRYPT",
|
|
["key", "iv", "ciphertext", "plaintext"],
|
|
) == [
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"0336763e966d92595a567cc9ce537f5e",
|
|
b"f34481ec3cc627bacd5dc3fb08f273e6",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"a9a1631bf4996954ebc093957b234589",
|
|
b"9798c4640bad75c7c3227db910174e72",
|
|
),
|
|
]
|
|
|
|
|
|
def test_load_nist_vectors_from_file_encrypt():
|
|
assert load_nist_vectors_from_file(
|
|
"AES/KAT/CBCGFSbox128.rsp",
|
|
"ENCRYPT",
|
|
["key", "iv", "plaintext", "ciphertext"],
|
|
) == [
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"f34481ec3cc627bacd5dc3fb08f273e6",
|
|
b"0336763e966d92595a567cc9ce537f5e",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"9798c4640bad75c7c3227db910174e72",
|
|
b"a9a1631bf4996954ebc093957b234589",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"96ab5c2ff612d9dfaae8c31f30c42168",
|
|
b"ff4f8391a6a40ca5b25d23bedd44a597",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"6a118a874519e64e9963798a503f1d35",
|
|
b"dc43be40be0e53712f7e2bf5ca707209",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"cb9fceec81286ca3e989bd979b0cb284",
|
|
b"92beedab1895a94faa69b632e5cc47ce",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"b26aeb1874e47ca8358ff22378f09144",
|
|
b"459264f4798f6a78bacb89c15ed3d601",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"58c8e00b2631686d54eab84b91f0aca1",
|
|
b"08a4e2efec8a8e3312ca7460b9040bbf",
|
|
),
|
|
]
|
|
|
|
|
|
def test_load_nist_vectors_from_file_decypt():
|
|
assert load_nist_vectors_from_file(
|
|
"AES/KAT/CBCGFSbox128.rsp",
|
|
"DECRYPT",
|
|
["key", "iv", "ciphertext", "plaintext"],
|
|
) == [
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"0336763e966d92595a567cc9ce537f5e",
|
|
b"f34481ec3cc627bacd5dc3fb08f273e6",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"a9a1631bf4996954ebc093957b234589",
|
|
b"9798c4640bad75c7c3227db910174e72",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"ff4f8391a6a40ca5b25d23bedd44a597",
|
|
b"96ab5c2ff612d9dfaae8c31f30c42168",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"dc43be40be0e53712f7e2bf5ca707209",
|
|
b"6a118a874519e64e9963798a503f1d35",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"92beedab1895a94faa69b632e5cc47ce",
|
|
b"cb9fceec81286ca3e989bd979b0cb284",
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"459264f4798f6a78bacb89c15ed3d601",
|
|
b"b26aeb1874e47ca8358ff22378f09144"
|
|
),
|
|
(
|
|
b"00000000000000000000000000000000",
|
|
b"00000000000000000000000000000000",
|
|
b"08a4e2efec8a8e3312ca7460b9040bbf",
|
|
b"58c8e00b2631686d54eab84b91f0aca1"
|
|
),
|
|
]
|