2
2
// SPDX-License-Identifier: Apache-2.0
3
3
mod common;
4
4
5
- use crate :: common:: { get_pkcs11, SO_PIN , USER_PIN } ;
5
+ use crate :: common:: { get_pkcs11, is_softhsm , SO_PIN , USER_PIN } ;
6
6
use common:: init_pins;
7
7
use cryptoki:: context:: Function ;
8
8
use cryptoki:: error:: { Error , RvError } ;
@@ -411,7 +411,7 @@ fn import_export() -> TestResult {
411
411
fn get_token_info ( ) -> TestResult {
412
412
let ( pkcs11, slot) = init_pins ( ) ;
413
413
let info = pkcs11. get_token_info ( slot) ?;
414
- assert_eq ! ( "SoftHSM project " , info. manufacturer_id( ) ) ;
414
+ assert_ne ! ( "" , info. manufacturer_id( ) ) ;
415
415
416
416
Ok ( ( ) )
417
417
}
@@ -698,9 +698,14 @@ fn get_info_test() -> TestResult {
698
698
let ( pkcs11, _) = init_pins ( ) ;
699
699
let info = pkcs11. get_library_info ( ) ?;
700
700
701
- assert_eq ! ( info. cryptoki_version( ) . major( ) , 2 ) ;
702
- assert_eq ! ( info. cryptoki_version( ) . minor( ) , 40 ) ;
703
- assert_eq ! ( info. manufacturer_id( ) , String :: from( "SoftHSM" ) ) ;
701
+ assert_ne ! ( "" , info. manufacturer_id( ) ) ;
702
+ if is_softhsm ( ) {
703
+ assert_eq ! ( info. cryptoki_version( ) . major( ) , 2 ) ;
704
+ assert_eq ! ( info. cryptoki_version( ) . minor( ) , 40 ) ;
705
+ } else {
706
+ assert_eq ! ( info. cryptoki_version( ) . major( ) , 3 ) ;
707
+ assert_eq ! ( info. cryptoki_version( ) . minor( ) , 0 ) ;
708
+ }
704
709
Ok ( ( ) )
705
710
}
706
711
@@ -712,7 +717,7 @@ fn get_slot_info_test() -> TestResult {
712
717
assert ! ( slot_info. token_present( ) ) ;
713
718
assert ! ( !slot_info. hardware_slot( ) ) ;
714
719
assert ! ( !slot_info. removable_device( ) ) ;
715
- assert_eq ! ( slot_info. manufacturer_id( ) , String :: from ( "SoftHSM project" ) ) ;
720
+ assert_ne ! ( "" , slot_info. manufacturer_id( ) ) ;
716
721
Ok ( ( ) )
717
722
}
718
723
@@ -1273,9 +1278,13 @@ fn sha256_digest() -> TestResult {
1273
1278
1274
1279
#[ test]
1275
1280
#[ serial]
1276
- // Currently empty AAD crashes SoftHSM, see: https://github.com/opendnssec/SoftHSMv2/issues/605
1277
- #[ ignore]
1278
1281
fn aes_gcm_no_aad ( ) -> TestResult {
1282
+ // Currently empty AAD crashes SoftHSM, see: https://github.com/opendnssec/SoftHSMv2/issues/605
1283
+ if is_softhsm ( ) {
1284
+ /* return Ignore(); */
1285
+ return Ok ( ( ) ) ;
1286
+ }
1287
+
1279
1288
// Encrypt two blocks of zeros with AES-128-GCM
1280
1289
let key = vec ! [ 0 ; 16 ] ;
1281
1290
let mut iv = [ 0 ; 12 ] ;
@@ -1370,8 +1379,13 @@ fn rsa_pkcs_oaep_empty() -> TestResult {
1370
1379
1371
1380
#[ test]
1372
1381
#[ serial]
1373
- #[ ignore] // it's not clear why the test with data specified fails
1374
1382
fn rsa_pkcs_oaep_with_data ( ) -> TestResult {
1383
+ /* SoftHSM does not support additional OAEP Source */
1384
+ if is_softhsm ( ) {
1385
+ /* return Ignore(); */
1386
+ return Ok ( ( ) ) ;
1387
+ }
1388
+
1375
1389
let ( pkcs11, slot) = init_pins ( ) ;
1376
1390
let session = pkcs11. open_rw_session ( slot) ?;
1377
1391
session. login ( UserType :: User , Some ( & AuthPin :: new ( USER_PIN . into ( ) ) ) ) ?;
@@ -1404,11 +1418,16 @@ fn rsa_pkcs_oaep_with_data() -> TestResult {
1404
1418
#[ test]
1405
1419
#[ serial]
1406
1420
fn get_slot_event ( ) -> TestResult {
1407
- // Not implemented in SoftHSMv2
1408
- // https://github.com/opendnssec/SoftHSMv2/issues/370
1409
1421
let ( pkcs11, _slot) = init_pins ( ) ;
1410
- let event = pkcs11. get_slot_event ( ) ?;
1411
- assert_eq ! ( None , event) ;
1422
+ if is_softhsm ( ) {
1423
+ // Not implemented in SoftHSMv2
1424
+ // https://github.com/opendnssec/SoftHSMv2/issues/370
1425
+ let event = pkcs11. get_slot_event ( ) ?;
1426
+ assert_eq ! ( None , event) ;
1427
+ } else {
1428
+ // Not implemented in Kryoptic
1429
+ pkcs11. get_slot_event ( ) . unwrap_err ( ) ;
1430
+ }
1412
1431
Ok ( ( ) )
1413
1432
}
1414
1433
0 commit comments