[gnutls-dev] Client OpenPGP verification fails

Mario Lenz mario.lenz at gmx.net
Sat Aug 5 18:34:12 CEST 2006


Sorry, I've sent this to the wrong mailing list. Should belong here in
devel:

Nikos Mavrogiannopoulos <nmav <at> gnutls.org> writes:

> > But then there's another problem in libextra/gnutls_openpgp.c. Please
> > have a look at _gnutls_openpgp_key_to_gcert:
> >
> > ret = gnutls_openpgp_key_export (cert, GNUTLS_OPENPGP_FMT_RAW, NULL,
> > &der_size);
> > if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
> >   {
> >     gnutls_assert ();
> >     return ret;
> >   }
> 
> This should be correct since decoding should fail (check that the output 
> pointer is NULL so there is no place to copy the output). That call is 
> there to get the size of the exported key only.

OK, I think now I've got it: You allocate the memory later on. But there's
still a problem: Even with the third parameter set to NULL,
gnutls_openpgp_key_export (in libextra/openpgp/pgp.c) doesn't return
GNUTLS_E_SHORT_MEMORY_BUFFER because cdk_kbnode_write_to_mem (called from
gnutls_openpgp_key_export) returns 0 if you give it a NULL pointer to write to.
(This might be an OpenCDK problem, though.) Could anyone have a look at it,
please?

I just deleted the "if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)" clause, but I'm
running into another problem now. I'll let you know if I found out more.

greez

   Mario





More information about the Gnutls-devel mailing list