Update from stable branch.
[openssl.git] / crypto / x509 / x509_vpm.c
index 087e8783a8781aff9b10f51459b6f47ee0c2ab4b..5e69259a7934b40c9656a84f475c3c5118a1abc7 100644 (file)
@@ -172,6 +172,15 @@ int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest,
        x509_verify_param_copy(trust, 0);
        x509_verify_param_copy(depth, -1);
 
+       /* If overwrite or check time not set, copy across */
+
+       if (to_overwrite || !(dest->flags & X509_V_FLAG_USE_CHECK_TIME))
+               {
+               dest->check_time = src->check_time;
+               dest->flags &= ~X509_V_FLAG_USE_CHECK_TIME;
+               /* Don't need to copy flag: that is done below */
+               }
+
        if (inh_flags & X509_VP_FLAG_RESET_FLAGS)
                dest->flags = 0;
 
@@ -211,6 +220,17 @@ int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags)
        return 1;
        }
 
+int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags)
+       {
+       param->flags &= ~flags;
+       return 1;
+       }
+
+unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param)
+       {
+       return param->flags;
+       }
+
 int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose)
        {
        return X509_PURPOSE_set(&param->purpose, purpose);