blob: 901ddabbcf43654285dadd0649a872258d26d493 [file] [log] [blame]
Paul Kehrerbde6fb52013-10-18 18:08:49 -05001# Licensed under the Apache License, Version 2.0 (the "License");
2# you may not use this file except in compliance with the License.
3# You may obtain a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
10# implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14from __future__ import absolute_import, division, print_function
15
16from cryptography.primitives import hashes
17
18from .utils import generate_base_hash_test
19
20
21class TestSHA1(object):
22 test_SHA1 = generate_base_hash_test(
Paul Kehrerbb069c22013-10-18 19:51:01 -050023 hashes.SHA1,
Paul Kehrerbde6fb52013-10-18 18:08:49 -050024 digest_size=20,
25 block_size=64,
Paul Kehrerba3b4712013-10-18 20:53:04 -050026 only_if=lambda api: api.supports_hash(hashes.SHA1),
Paul Kehrerbde6fb52013-10-18 18:08:49 -050027 skip_message="Does not support SHA1",
28 )
Paul Kehrer7e5697c2013-10-18 21:07:36 -050029
30
31class TestSHA224(object):
32 test_SHA224 = generate_base_hash_test(
33 hashes.SHA224,
34 digest_size=28,
35 block_size=64,
36 only_if=lambda api: api.supports_hash(hashes.SHA224),
37 skip_message="Does not support SHA224",
38 )
39
40
41class TestSHA256(object):
42 test_SHA256 = generate_base_hash_test(
43 hashes.SHA256,
44 digest_size=32,
45 block_size=64,
46 only_if=lambda api: api.supports_hash(hashes.SHA256),
47 skip_message="Does not support SHA256",
48 )
49
50
51class TestSHA384(object):
52 test_SHA384 = generate_base_hash_test(
53 hashes.SHA384,
54 digest_size=48,
55 block_size=128,
56 only_if=lambda api: api.supports_hash(hashes.SHA384),
57 skip_message="Does not support SHA384",
58 )
59
60
61class TestSHA512(object):
62 test_SHA512 = generate_base_hash_test(
63 hashes.SHA512,
64 digest_size=64,
65 block_size=128,
66 only_if=lambda api: api.supports_hash(hashes.SHA512),
67 skip_message="Does not support SHA512",
68 )
Paul Kehrerc1794072013-10-18 21:42:57 -050069
70
71class TestRIPEMD160(object):
72 test_RIPEMD160 = generate_base_hash_test(
73 hashes.RIPEMD160,
74 digest_size=20,
75 block_size=64,
76 only_if=lambda api: api.supports_hash(hashes.RIPEMD160),
77 skip_message="Does not support RIPEMD160",
78 )
Paul Kehrer79ff8bf2013-10-18 22:07:29 -050079
80
81class TestWhirlpool(object):
82 test_Whirlpool = generate_base_hash_test(
83 hashes.Whirlpool,
84 digest_size=64,
85 block_size=64,
86 only_if=lambda api: api.supports_hash(hashes.Whirlpool),
87 skip_message="Does not support Whirlpool",
88 )
Paul Kehrer36e7d0d2013-10-18 18:54:40 -050089
90
91class TestMD5(object):
92 test_MD5 = generate_base_hash_test(
93 hashes.MD5,
94 digest_size=16,
95 block_size=64,
96 only_if=lambda api: api.supports_hash(hashes.MD5),
97 skip_message="Does not support MD5",
98 )