if (algorithm == GNUTLS_PK_EDDSA_ED25519)
digest = GNUTLS_DIG_SHA512;
+ else if (algorithm == GNUTLS_PK_GOST_01)
+ digest = GNUTLS_DIG_GOSTR_94;
+ else if (algorithm == GNUTLS_PK_GOST_12_256)
+ digest = GNUTLS_DIG_STREEBOG_256;
+ else if (algorithm == GNUTLS_PK_GOST_12_512)
+ digest = GNUTLS_DIG_STREEBOG_512;
else
digest = GNUTLS_DIG_SHA256;
algorithm == GNUTLS_PK_ECDH_X25519)
continue;
- /* Unsupported for now */
- if (algorithm == GNUTLS_PK_GOST_01 ||
- algorithm == GNUTLS_PK_GOST_12_256 ||
- algorithm == GNUTLS_PK_GOST_12_512)
+ if (gnutls_fips140_mode_enabled() &&
+ (algorithm == GNUTLS_PK_GOST_01 ||
+ algorithm == GNUTLS_PK_GOST_12_256 ||
+ algorithm == GNUTLS_PK_GOST_12_512))
continue;
+
ret = gnutls_x509_privkey_init(&pkey);
if (ret < 0) {
fail("gnutls_x509_privkey_init: %d\n",