]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
tests: privkey-keygen: adapt to support GOST algorithms
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Tue, 29 Aug 2017 14:44:10 +0000 (17:44 +0300)
committerDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Sat, 23 Jun 2018 09:20:16 +0000 (12:20 +0300)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
tests/privkey-keygen.c

index 7762938dcfa09341a0ca4f46b2612c7c482a4ef0..85f803a6b3e0f8f8ac5023d176af81156d5bcd44 100644 (file)
@@ -67,6 +67,12 @@ static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privke
 
        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;
 
@@ -119,12 +125,13 @@ void doit(void)
                            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",