gpgme_op_verify problem

Mario Lenz m at
Mon Jul 9 18:46:39 CEST 2007


I already asked this on the gnupg-users list, but since nobody helped, I
have the same problem with 1.1.5 and "Bug reports and requests for
assistance should be sent to" this list...

I'm trying to get the plain text out of a signature:

#include <stdlib.h>
#include <stdio.h>
#include <gpgme.h>

main (int argc, char **argv)
  gpgme_ctx_t ctx;
  gpgme_error_t err;
  gpgme_data_t plain, signed_text;
  char buffer[100];
  ssize_t size;

  printf ("%s\n", gpgme_check_version (NULL));
  err = gpgme_engine_check_version (GPGME_PROTOCOL_OpenPGP);
  if (err) exit (1);

  err = gpgme_new (&ctx);
  if (!err)
      err = gpgme_set_protocol(ctx, GPGME_PROTOCOL_OpenPGP);
  if (err) exit (2);

  err = gpgme_data_new_from_mem (&plain, "Hallo Leute\n", 13, 1);
  if (err) exit (3);
  err = gpgme_data_new (&signed_text);
  if (err) exit (4);

  err = gpgme_op_sign (ctx, plain, signed_text, GPGME_SIG_MODE_NORMAL);
  if (err) exit (5);

  gpgme_data_release (plain);
  err = gpgme_data_new (&plain);
  if (err) exit (6);

  gpgme_data_seek (signed_text, 0, SEEK_SET);

  err = gpgme_op_verify (ctx, signed_text, NULL, plain);
  if (err) exit (7);

  gpgme_data_seek (plain, 0, SEEK_SET);
  size = gpgme_data_read (plain, buffer, 100);
  if (size > 0)
    printf("%s\n", buffer);
    printf("failed with size %d\n", size);

  gpgme_data_release (plain);
  gpgme_data_release (signed_text);
  gpgme_release (ctx);
  return 0;

Compiling with: gcc -o test_rme test_rme.c
"$HOME"/src/gpgme-1.1.5/gpgme/.libs/ -Wl,--rpath

Output ./test_rme:
failed with size 0

Am I doing it wrong or *is* there a bug?



Normally I wouldn't have sent a mail again... but since you released a
new version I wanted to inform you that the problem still exists. And as
long as you don't tell me my code is wrong I'll consider it a bug in
gpgme :-)

Rule One: Do not act incautiously when confronting little bald wrinkly
smiling men.

More information about the Gnupg-devel mailing list