Gpgme_op_sign(...,GPGME_SIG_MODE_CLEAR) output limited to ~20757 with callback data buffers.

Uldis.Ansmits at tieto.com Uldis.Ansmits at tieto.com
Fri Feb 19 10:57:53 CET 2010


Gpgme-1.2.0

I noticed an unexpected signing behaviour for large files when using plain and crypto callback buffers.
This happens only in GPGME_SIG_MODE_CLEAR mode. All other operations work fine.
The same problem also with gpgme_op_sign_start/wait.

It looks like write callback is called after all reading is done. But only part of clearsign data is written. Depending on OS I got 2 - 7 write callbacks (different PIPE_BUF sizes) with total 20751 - 20757 written.
Tested on x86_64, IA64, powerpc, sparc. GCC42 was used everywhere.

To reproduce:
* plain and crypto callback data buffers must be used
* only signing opration in GPGME_SIG_MODE_CLEAR mode
* plain data more than 20757 bytes

Regards,
Uldis


More information about the Gnupg-devel mailing list