@@ -111,7 +111,7 @@ extern "C" fn alloc_custom_pk_ctx() -> *mut c_void {
111
111
}
112
112
113
113
unsafe extern "C" fn free_custom_pk_ctx ( p : * mut c_void ) {
114
- Box :: from_raw ( p as * mut CustomPkContext ) ;
114
+ let _ = Box :: from_raw ( p as * mut CustomPkContext ) ;
115
115
}
116
116
117
117
extern "C" fn custom_pk_can_do ( _t : u32 ) -> i32 {
@@ -953,7 +953,7 @@ impl Pk {
953
953
#[ cfg( test) ]
954
954
mod tests {
955
955
use super :: * ;
956
- use crate :: hash:: Type ;
956
+ use crate :: hash:: { Type , MdInfo } ;
957
957
use crate :: pk:: Type as PkType ;
958
958
959
959
// This is test data that must match library output *exactly*
@@ -1155,7 +1155,7 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
1155
1155
fn rsa_sign_verify_pkcs1v15 ( ) {
1156
1156
let mut pk =
1157
1157
Pk :: generate_rsa ( & mut crate :: test_support:: rand:: test_rng ( ) , 2048 , 0x10001 ) . unwrap ( ) ;
1158
- let data = b"SIGNATURE TEST SIGNATURE TEST SI " ;
1158
+ let data = b"SIGNATURE TEST SIGNATURE TEST SIGNATURE TEST SIGNATURE TEST SIGN " ;
1159
1159
let mut signature = vec ! [ 0u8 ; ( pk. len( ) + 7 ) / 8 ] ;
1160
1160
1161
1161
let digests = [
@@ -1171,24 +1171,30 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
1171
1171
Type :: Ripemd ,
1172
1172
] ;
1173
1173
1174
- for digest in & digests {
1174
+ for & digest in & digests {
1175
+ let data = if let Some ( md @ MdInfo { .. } ) = digest. into ( ) {
1176
+ & data[ ..md. size ( ) ]
1177
+ } else {
1178
+ & data[ ..]
1179
+ } ;
1180
+
1175
1181
let len = pk
1176
1182
. sign (
1177
- * digest,
1183
+ digest,
1178
1184
data,
1179
1185
& mut signature,
1180
1186
& mut crate :: test_support:: rand:: test_rng ( ) ,
1181
1187
)
1182
1188
. unwrap ( ) ;
1183
- pk. verify ( * digest, data, & signature[ 0 ..len] ) . unwrap ( ) ;
1189
+ pk. verify ( digest, data, & signature[ 0 ..len] ) . unwrap ( ) ;
1184
1190
}
1185
1191
}
1186
1192
1187
1193
#[ test]
1188
1194
fn rsa_sign_verify_pss ( ) {
1189
1195
let mut pk =
1190
1196
Pk :: generate_rsa ( & mut crate :: test_support:: rand:: test_rng ( ) , 2048 , 0x10001 ) . unwrap ( ) ;
1191
- let data = b"SIGNATURE TEST SIGNATURE TEST SI " ;
1197
+ let data = b"SIGNATURE TEST SIGNATURE TEST SIGNATURE TEST SIGNATURE TEST SIGN " ;
1192
1198
let mut signature = vec ! [ 0u8 ; ( pk. len( ) + 7 ) / 8 ] ;
1193
1199
1194
1200
let digests = [
@@ -1204,15 +1210,21 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
1204
1210
Type :: Ripemd ,
1205
1211
] ;
1206
1212
1207
- for digest in & digests {
1213
+ for & digest in & digests {
1214
+ let data = if let Some ( md @ MdInfo { .. } ) = digest. into ( ) {
1215
+ & data[ ..md. size ( ) ]
1216
+ } else {
1217
+ & data[ ..]
1218
+ } ;
1219
+
1208
1220
pk. set_options ( Options :: Rsa {
1209
- padding : RsaPadding :: Pkcs1V21 { mgf : * digest } ,
1221
+ padding : RsaPadding :: Pkcs1V21 { mgf : digest } ,
1210
1222
} ) ;
1211
1223
1212
- if * digest == Type :: None {
1224
+ if digest == Type :: None {
1213
1225
assert ! ( pk
1214
1226
. sign(
1215
- * digest,
1227
+ digest,
1216
1228
data,
1217
1229
& mut signature,
1218
1230
& mut crate :: test_support:: rand:: test_rng( )
@@ -1221,13 +1233,13 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
1221
1233
} else {
1222
1234
let len = pk
1223
1235
. sign (
1224
- * digest,
1236
+ digest,
1225
1237
data,
1226
1238
& mut signature,
1227
1239
& mut crate :: test_support:: rand:: test_rng ( ) ,
1228
1240
)
1229
1241
. unwrap ( ) ;
1230
- pk. verify ( * digest, data, & signature[ 0 ..len] ) . unwrap ( ) ;
1242
+ pk. verify ( digest, data, & signature[ 0 ..len] ) . unwrap ( ) ;
1231
1243
}
1232
1244
}
1233
1245
}
0 commit comments