Problem decrypting PGP in python with pyme without user interaction
Question: I am trying to decrypt messages using pyme (a python wrapper from gpgme). It
works fine if I type in the password when it prompts but I cannot get the
passphrase callback to work. Here is the code

    
    
    import pyme.core
    
    def Callback( x, y, z ):
        print 'in passphrase callback'
     return 'passphrase'
    
    plain = pyme.core.Data()
    cipher = pyme.core.Data(sys.stdin.read())
    c = pyme.core.Context()
    c.set_armor(1)
    c.set_passphrase_cb(Callback)
    c.op_decrypt( cipher, plain )
    plain.seek(0,0)
    print plain.read()
    

When I run this and don't provide the password interactively the program then
tries the Callback printing 'in passphrase callback' but then fails with
error:

    
    
    pyme.errors.GPGMEError: Invocation of gpgme_op_decrypt: Unspecified source: General error (0,1)
    

First and foremost, why does the passphrase callback not work? And secondly,
how can I prevent the program from prompting the user for a password before
calling the passphrase callback?

This is running on Ubuntu 10.04


Answer: apparently, you need to interpret the keyword `hook`:

    
    
       def Callback( x, y, z, hook=None):
       ...
    

works perfectly well.

