@@ -1012,58 +1012,35 @@ cYp0bH/RcPTC0Z+ZaqSWMtfxRrk63MJQF9EXpDCdvQRcTMD9D85DJrMKn8aumq0M
1012
1012
let c_int2 = Certificate :: from_pem ( C_INT2 . as_bytes ( ) ) . unwrap ( ) ;
1013
1013
let mut c_root = Certificate :: from_pem_multiple ( C_ROOT . as_bytes ( ) ) . unwrap ( ) ;
1014
1014
1015
- {
1016
- let mut chain = MbedtlsList :: < Certificate > :: new ( ) ;
1017
- chain. push ( c_leaf. clone ( ) ) ;
1018
- chain. push ( c_int1. clone ( ) ) ;
1019
-
1020
- let err = Certificate :: verify ( & chain, & mut c_root, None , None ) . unwrap_err ( ) ;
1021
- assert_eq ! ( err, Error :: X509CertVerifyFailed ) ;
1022
-
1023
- // try again after fixing the chain
1024
- chain. push ( c_int2. clone ( ) ) ;
1025
-
1026
-
1027
- let mut err_str = String :: new ( ) ;
1028
-
1029
- let verify_callback = |_crt : & Certificate , _depth : i32 , verify_flags : & mut VerifyError | {
1030
- verify_flags. remove ( VerifyError :: CERT_EXPIRED ) ;
1031
- Ok ( ( ) )
1032
- } ;
1015
+ // Certificate C_INT2 is missing at the beginning so the verification should fail at first
1016
+ let mut chain = MbedtlsList :: < Certificate > :: new ( ) ;
1017
+ chain. push ( c_leaf. clone ( ) ) ;
1018
+ chain. push ( c_int1. clone ( ) ) ;
1033
1019
1034
- Certificate :: verify ( & chain, & mut c_root, None , None ) . unwrap ( ) ;
1035
- let res = Certificate :: verify_with_callback ( & chain, & mut c_root, None , Some ( & mut err_str) , verify_callback) ;
1020
+ // The certificates used for this test are expired so we remove the CERT_EXPIRED flag with the callback
1021
+ let verify_callback = |_crt : & Certificate , _depth : i32 , verify_flags : & mut VerifyError | {
1022
+ verify_flags. remove ( VerifyError :: CERT_EXPIRED ) ;
1023
+ Ok ( ( ) )
1024
+ } ;
1036
1025
1037
- match res {
1038
- Ok ( ( ) ) => ( ) ,
1039
- Err ( e ) => assert ! ( false , "Failed to verify, error: {}, err_str: {}" , e , err_str ) ,
1040
- } ;
1026
+ let res = Certificate :: verify_with_callback ( & chain , & mut c_root , None , None , verify_callback ) ;
1027
+ match res {
1028
+ Ok ( _ ) => panic ! ( "Certificate chain verification should have failed, but it succeeded" ) ,
1029
+ Err ( err ) => assert_eq ! ( err , Error :: X509CertVerifyFailed ) ,
1041
1030
}
1042
1031
1043
- {
1044
- let mut chain = MbedtlsList :: < Certificate > :: new ( ) ;
1045
- chain. push ( c_leaf. clone ( ) ) ;
1046
- chain. push ( c_int1. clone ( ) ) ;
1047
- chain. push ( c_int2. clone ( ) ) ;
1048
-
1049
- Certificate :: verify ( & chain, & mut c_root, None , None ) . unwrap ( ) ;
1032
+ // try again after fixing the chain
1033
+ chain. push ( c_int2. clone ( ) ) ;
1050
1034
1051
- let verify_callback = |_crt : & Certificate , _depth : i32 , verify_flags : & mut VerifyError | {
1052
- verify_flags. remove ( VerifyError :: CERT_EXPIRED ) ;
1053
- Ok ( ( ) )
1054
- } ;
1035
+ let mut err_str = String :: new ( ) ;
1055
1036
1056
- let mut err_str = String :: new ( ) ;
1057
- let res = Certificate :: verify_with_callback ( & chain, & mut c_root, None , Some ( & mut err_str) , verify_callback) ;
1037
+ let res = Certificate :: verify_with_callback ( & chain, & mut c_root, None , Some ( & mut err_str) , verify_callback) ;
1058
1038
1059
- match res {
1060
- Ok ( ( ) ) => ( ) ,
1061
- Err ( e) => assert ! ( false , "Failed to verify, error: {}, err_str: {}" , e, err_str) ,
1062
- } ;
1063
- }
1039
+ match res {
1040
+ Ok ( ( ) ) => ( ) ,
1041
+ Err ( e) => panic ! ( "Failed to verify, error: {}, err_str: {}" , e, err_str) ,
1042
+ } ;
1064
1043
}
1065
-
1066
-
1067
1044
1068
1045
#[ test]
1069
1046
fn clone_test ( ) {
0 commit comments