gpgme & gpgme_data_write problem
Tyler Retzlaff
list at omicron-persei-8.net
Mon Apr 25 06:53:31 CEST 2005
bah, have to gpgme_data_seek(plain, 0, SEEK_SET); before encrypting.
Seems kind of obvious now, but maybe should have been documented.
Tyler Retzlaff wrote:
> I'm using the following piece of code which is heavily derived from that
> found in the gpgme/test directory. (With error checking removed for
> clarity, though in the real code all error checking is being done)
>
> The problem is when I use gpgme_data_write() to enter the text into the
> plain text data buffer before encryption it doesn't end up being
> encrypted as a part of cipher text. The resulting encrypted message is
> empty.
>
> This doesn't happen if I initialize the plain data buffer with
> gpg_data_new_from_mem(). Am I using gpgme_data_new() and
> gpgme_data_write() incorrectly? Or is libgpgme at fault? btw. using
> gpgme 1.0.1/gnupg 1.2.6 being used.
>
> Advice is appreciated, thanks!
>
> int
> main(int argc, char **argv)
> size_t wbytes;
> gpgme_error_t e;
> gpgme_ctx_t ctx;
> gpgme_data_t plain;
> gpgme_data_t cipher;
> gpgme_key_t key[2] = { NULL, NULL };
> gpgme_encrypt_result_t r;
> gpgme_data_encoding_t enc;
>
> setlocale (LC_ALL, "");
> gpgme_check_version (NULL);
> gpgme_set_locale(NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
> gpgme_set_locale(NULL, LC_MESSAGES, setlocale (LC_MESSAGES,
> NULL));
>
> gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP);
> gpgme_new(&ctx);
> gpgme_set_armor(ctx, 1);
>
> gpgme_data_new(&plain);
> gpgme_data_new(&cipher);
> gpgme_get_key(ctx, "93EE05A3D02C75B7B451AF1E6449D89A2D2C2204",
> &key[0], 0);
>
> wbytes = sizeof("This is the first line.\n");
> gpgme_data_write(plain, "This is the first line.\n", wbytes);
> fprintf(stderr, "wrote %d bytes\n", wbytes);
> gpgme_op_encrypt(ctx, key, 0, plain, cipher);
> r = gpgme_op_encrypt_result(ctx);
>
> print_data(cipher);
> gpgme_key_unref(key[0]);
> gpgme_data_release(plain);
> gpgme_data_release(cipher);
> gpgme_release(ctx);
>
> return EXIT_SUCCESS;
>
> _______________________________________________
> Gnupg-users mailing list
> Gnupg-users at gnupg.org
> http://lists.gnupg.org/mailman/listinfo/gnupg-users
More information about the Gnupg-users
mailing list