enabled both on a server and a client. It is recommended for now to disable
TLS 1.3 in setups where GOST ciphersuites are enabled on GnuTLS-based servers.
+** libgnutls: The min-verification-profile from system configuration applies
+ for all certificate verifications, not only under TLS.
+
** API and ABI modifications:
gnutls_ocsp_req_const_t: Added
#define OVERRIDES_SECTION "overrides"
#define MAX_ALGO_NAME 128
+gnutls_certificate_verification_profiles_t _gnutls_get_system_wide_verification_profile(void)
+{
+ return system_wide_verification_profile;
+}
+
/* removes spaces */
static char *clear_spaces(const char *str, char out[MAX_ALGO_NAME])
{
gnutls_certificate_verification_profiles_t _gnutls_profile_get_id(const char *name) __GNUTLS_PURE__;
gnutls_sec_param_t _gnutls_profile_to_sec_level(gnutls_certificate_verification_profiles_t profile) __GNUTLS_PURE__;
+gnutls_certificate_verification_profiles_t _gnutls_get_system_wide_verification_profile(void);
+
#endif /* GNUTLS_LIB_PROFILES_H */
#include <common.h>
#include <pk.h>
#include "supported_exts.h"
+#include "profiles.h"
/* Checks if two certs have the same name and the same key. Return 1 on match.
* If @is_ca is zero then this function is identical to gnutls_x509_crt_equals()
gnutls_pk_params_st params;
gnutls_sec_param_t sp;
int hash;
+ gnutls_certificate_verification_profiles_t min_profile;
- if (profile == GNUTLS_PROFILE_UNKNOWN)
+ min_profile = _gnutls_get_system_wide_verification_profile();
+
+ if (min_profile) {
+ if (profile < min_profile) {
+ gnutls_assert();
+ profile = min_profile;
+ }
+ }
+
+ if (profile == GNUTLS_PROFILE_UNKNOWN) {
return 1;
+ }
pkalg = gnutls_x509_crt_get_pk_algorithm(crt, &bits);
if (pkalg < 0)