Problems with GPGME returning "Not Implemented" or "Configuration error"

Jeffrey Stedfast jestedfa at
Mon Feb 27 15:20:38 CET 2017

Hi all,

I'm working on re-implementing GMime to use libgpgme (1.8.0 on Fedora 25) instead of using my own custom logic for fork()ing/exec()ing gpg & parsing the status-fd output to do PGP encryption and I've gotten that to work just fine for PGP, but I am having trouble using nearly identical logic (only diff is armor/textmode state) to sign or encrypt using the CMS backend.

For some reason, gpgme_op_sign() is returning GPG_ERR_NOT_IMPLEMENTED while gpgme_op_encrypt() is returning "Configuration error".

>From what I can deduce by scouring the web for information, it seems like NOT_IMPLEMENTED should never get returned unless I am using options that just haven't been implemented yet but that doesn't seem like it should be the case since I don't think I'm doing anything out of the ordinary.

When signing, I've set armor=0, textmode=0, mode=DETACH (or NORMAL), and added a signer to the context.

For encrypting, I am getting "Configuration error" which I'm also confused about because I don't know what configuration options could be causing this.

Once again, armor=0, textmode=0, flags=0, and I've created a NULL-terminated list of recipient keys to pass to gpgme_op_encrypt().

Since my unit tests are re-using the same gpgme context to import some smime certs, then export some certs, then sign some streams, etc - could that be the problem? As I write this email, I realize that's something I haven't yet checked...

All I can think of is that perhaps there is some leftover state from gpgme_op_import() or gpgme_op_export_ext() that is breaking the gpgme_op_sign() when run at a later point?

Thanks for any help or guidance in tracking down these issues,


More information about the Gnupg-users mailing list