tests: Cope with broken Libgcrypt versions

* common/t-sexputil.c (test_ecc_uncompress): Ignore unknwon curve
errors.
--

For unknown reasons some versions of Fedora or RHEL provide a patched
version of Libgcrypt with Brainpool support removed.  We better ignore
this error because it is a regression in 2.2.28 although that older
versions could not used Brainpool keys.

GnuPG-bug-id: 5502
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2021-06-22 12:29:59 +02:00
parent edfe9453be
commit 5df658233a
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 25 additions and 9 deletions

View File

@ -461,17 +461,33 @@ test_ecc_uncompress (void)
if (bbuf)
{
err = uncompress_ecc_q_in_canon_sexp (bbuf, bbuflen, &rbuf, &rbuflen);
if (err)
fail2 (idx,err);
if (!rbuf)
fail (idx); /* Not converted despite a need for it. */
if (gpg_err_code (err) == GPG_ERR_UNKNOWN_CURVE)
{
static int shown;
fprintf (stderr, "%s:%d: test %d failed: %s - ignored\n",
__FILE__,__LINE__, idx, gpg_strerror (err));
if (!shown)
{
shown = 1;
fprintf (stderr, "This is likely due to a patched"
" version of Libgcrypt with removed support"
" for Brainpool curves\n");
}
}
else
{
if (err)
fail2 (idx,err);
if (!rbuf)
fail (idx); /* Not converted despite a need for it. */
/* log_printcanon (" orig:", abuf, abuflen); */
/* log_printcanon (" comp:", bbuf, bbuflen); */
/* log_printcanon ("uncomp:", rbuf, rbuflen); */
/* log_printcanon (" orig:", abuf, abuflen); */
/* log_printcanon (" comp:", bbuf, bbuflen); */
/* log_printcanon ("uncomp:", rbuf, rbuflen); */
if (rbuflen != abuflen || memcmp (rbuf, abuf, abuflen))
fail (idx);
if (rbuflen != abuflen || memcmp (rbuf, abuf, abuflen))
fail (idx);
}
}
xfree (abuf);