@@ -120,28 +120,56 @@ impl KeyEvolvingSignatureAlgorithm for SumEd25519_12 {
120
120
mod tests {
121
121
use super :: * ;
122
122
123
- #[ quickcheck]
124
- /// `public_from_binary`should fail if the provided byte array does not match the public key size
125
- fn public_from_binary_size_check ( n : usize ) {
123
+ use proptest:: prelude:: * ;
124
+ use test_strategy:: proptest;
125
+
126
+ #[ test]
127
+ fn public_from_binary_correct_size ( ) {
128
+ SumEd25519_12 :: public_from_binary ( & vec ! [ 0 ; SumEd25519_12 :: PUBLIC_KEY_SIZE ] ) . unwrap ( ) ;
129
+ }
130
+
131
+ #[ test]
132
+ fn public_from_binary_empty_slice ( ) {
133
+ assert ! ( matches!(
134
+ SumEd25519_12 :: public_from_binary( & [ ] ) ,
135
+ Err ( PublicKeyError :: SizeInvalid )
136
+ ) )
137
+ }
138
+
139
+ // `secret_from_binary` should fail if the provided byte array does not match the public key size
140
+ #[ proptest]
141
+ fn public_from_binary_size_check ( #[ strategy( ..SumEd25519_12 :: PUBLIC_KEY_SIZE * 10 ) ] n : usize ) {
126
142
let public_key = SumEd25519_12 :: public_from_binary ( & vec ! [ 0 ; n] ) ;
127
143
128
- assert_eq ! (
144
+ prop_assert_eq ! (
129
145
n != SumEd25519_12 :: PUBLIC_KEY_SIZE ,
130
- public_key == Err ( PublicKeyError :: SizeInvalid )
146
+ matches! ( public_key, Err ( PublicKeyError :: SizeInvalid ) )
131
147
) ;
132
148
}
133
149
134
- #[ quickcheck]
135
- /// `signature_from_bytes` should fail if the provided byte array does not match the public key size
136
- fn signature_from_bytes_size_check ( n : usize ) {
137
- let verification_algorithm = SumEd25519_12 :: signature_from_bytes ( & vec ! [ 0 ; n] ) ;
150
+ #[ test]
151
+ fn signature_from_binary_correct_size ( ) {
152
+ SumEd25519_12 :: signature_from_bytes ( & vec ! [ 0 ; SumEd25519_12 :: SIGNATURE_SIZE ] ) . unwrap ( ) ;
153
+ }
154
+
155
+ #[ test]
156
+ fn signature_from_binary_empty_slice ( ) {
157
+ assert ! ( matches!(
158
+ SumEd25519_12 :: signature_from_bytes( & [ ] ) ,
159
+ Err ( SignatureError :: SizeInvalid { .. } )
160
+ ) )
161
+ }
162
+
163
+ // `secret_from_binary` should fail if the provided byte array does not match the public key size
164
+ #[ proptest]
165
+ fn signature_from_binary_size_check (
166
+ #[ strategy( ..SumEd25519_12 :: SIGNATURE_SIZE * 10 ) ] n : usize ,
167
+ ) {
168
+ let signature = SumEd25519_12 :: signature_from_bytes ( & vec ! [ 0 ; n] ) ;
138
169
139
- assert_eq ! (
170
+ prop_assert_eq ! (
140
171
n != SumEd25519_12 :: SIGNATURE_SIZE ,
141
- matches!(
142
- verification_algorithm,
143
- Err ( SignatureError :: SizeInvalid { .. } )
144
- )
172
+ matches!( signature, Err ( SignatureError :: SizeInvalid { .. } ) )
145
173
) ;
146
174
}
147
175
}
0 commit comments