AW: GnuPG Made Easy nicht interactive variante passowrtschutz für archiv

Schultschik, Sven sven.schultschik at siemens.com
Mo Apr 19 12:09:32 CEST 2021


Ok Tippfehler gefunden warum er nicht in den Callback gegangen ist. set_keylist_mode muss set_pinentry_mode heißen.

Der CB wird zwar jetzt aufgerufen und beendet, aber aus gpgme_op_encrypt kommt er nicht mehr raus, die ausführung bleibt stehen, als ob sie auf irgendwas warten würde.

err = gpgme_set_pinentry_mode(ctx, GPGME_PINENTRY_MODE_LOOPBACK);
gpgme_ctx_t ctx;
gpgme_error_t err;
gpgme_data_t in, out;
gpgme_encrypt_result_t result;

init_gpgme();

err = gpgme_new(&ctx);
fail_if_err(err);
gpgme_set_armor(ctx, 1);

FILE *instream;
instream = fopen(infile.c_str(), "r"); err = gpgme_data_new_from_stream(&in, instream);
fail_if_err(err);
FILE *outstream;
outstream = fopen((infile.append(".gpg")).c_str(), "w");
err = gpgme_data_new_from_stream(&out, outstream);
fail_if_err(err);

err = gpgme_set_pinentry_mode(ctx, GPGME_PINENTRY_MODE_LOOPBACK);
fail_if_err(err);

gpgme_set_passphrase_cb(ctx, passphrase_cb, NULL);

err = gpgme_op_encrypt(ctx, NULL, GPGME_ENCRYPT_SYMMETRIC, in, out);

Danke



Mehr Informationen über die Mailingliste Gnupg-de