]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
additional sanity check in RSA key generation testing in FIPS-140-2 mode
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 29 Aug 2014 15:47:22 +0000 (17:47 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 29 Aug 2014 15:47:22 +0000 (17:47 +0200)
The encrypted data are checked to differ from the plaintext, to prevent
any issues with an accidental null encryption.

lib/x509/privkey.c

index 1fbcccba6271827e5e365adb6aff012e8cf75b02..f5855ab638eae863b51880c221d321cf41f0241e 100644 (file)
@@ -1327,12 +1327,19 @@ char* gen_data = NULL;
                        goto cleanup;
                }
 
+               if (ddata.size == sig.size && memcmp(ddata.data, sig.data, sig.size) == 0) {
+                       ret = gnutls_assert_val(GNUTLS_E_PK_GENERATION_ERROR);
+                       gnutls_assert();
+                       goto cleanup;
+               }
+
                ret = _gnutls_pk_decrypt(algo, &tmp, &sig, params);
                if (ret < 0) {
                        ret = gnutls_assert_val(GNUTLS_E_PK_GENERATION_ERROR);
                        gnutls_assert();
                        goto cleanup;
                }
+
                if (tmp.size != ddata.size || memcmp(tmp.data, ddata.data, tmp.size) != 0) {
                        ret = gnutls_assert_val(GNUTLS_E_PK_GENERATION_ERROR);
                        gnutls_assert();