예제 #1
0
# Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <http://www.gnu.org/licenses/>.

from __future__ import absolute_import, print_function, unicode_literals

import gpg
import support

del absolute_import, print_function, unicode_literals

c = gpg.Context()

source = gpg.Data(file=support.make_filename("cipher-1.asc"))
sink = gpg.Data()

c.op_decrypt(source, sink)
result = c.op_decrypt_result()
assert not result.unsupported_algorithm, \
    "Unsupported algorithm: {}".format(result.unsupported_algorithm)

support.print_data(sink)

# Idiomatic interface.
with gpg.Context() as c:
    plaintext, _, _ = c.decrypt(open(support.make_filename("cipher-1.asc")))
    assert len(plaintext) > 0
    assert plaintext.find(b'Wenn Sie dies lesen k') >= 0, \
        'Plaintext not found'
예제 #2
0
    source = gpg.Data("Hallo Leute\n")
    cipher = gpg.Data()

    passphrase_cb_called = 0

    def passphrase_cb(hint, desc, prev_bad, hook=None):
        global passphrase_cb_called
        passphrase_cb_called += 1
        return passphrase

    c.set_passphrase_cb(passphrase_cb, None)

    c.op_encrypt([], 0, source, cipher)
    assert passphrase_cb_called == 1, \
        "Callback called {} times".format(passphrase_cb_called)
    support.print_data(cipher)

    c = gpg.Context()
    c.set_armor(True)
    c.set_pinentry_mode(gpg.constants.PINENTRY_MODE_LOOPBACK)
    c.set_passphrase_cb(passphrase_cb, None)
    plain = gpg.Data()
    cipher.seek(0, os.SEEK_SET)

    c.op_decrypt(cipher, plain)
    # Seems like the passphrase is cached.
    # assert passphrase_cb_called == 2, \
    #    "Callback called {} times".format(passphrase_cb_called)
    support.print_data(plain)

    plain.seek(0, os.SEEK_SET)
예제 #3
0
파일: t-sign.py 프로젝트: gpg/gpgme
        sys.exit("Wrong fingerprint reported: {}".format(signature.fpr))


support.init_gpgme(constants.PROTOCOL_OpenPGP)
c = core.Context()
c.set_textmode(True)
c.set_armor(True)

source = core.Data("Hallo Leute\n")
sink = core.Data()

c.op_sign(source, sink, constants.SIG_MODE_NORMAL)

result = c.op_sign_result()
check_result(result, constants.SIG_MODE_NORMAL)
support.print_data(sink)

# Now a detached signature.
source.seek(0, os.SEEK_SET)
sink = core.Data()

c.op_sign(source, sink, constants.SIG_MODE_DETACH)

result = c.op_sign_result()
check_result(result, constants.SIG_MODE_DETACH)
support.print_data(sink)

# And finally a cleartext signature.  */
source.seek(0, os.SEEK_SET)
sink = core.Data()
예제 #4
0
파일: t-encrypt-sym.py 프로젝트: gpg/gpgme
    source = core.Data("Hallo Leute\n")
    cipher = core.Data()

    passphrase_cb_called = 0
    def passphrase_cb(hint, desc, prev_bad, hook=None):
        global passphrase_cb_called
        passphrase_cb_called += 1
        return passphrase

    c.set_passphrase_cb(passphrase_cb, None)

    c.op_encrypt([], 0, source, cipher)
    assert passphrase_cb_called == 1, \
        "Callback called {} times".format(passphrase_cb_called)
    support.print_data(cipher)

    c = core.Context()
    c.set_armor(True)
    c.set_pinentry_mode(constants.PINENTRY_MODE_LOOPBACK)
    c.set_passphrase_cb(passphrase_cb, None)
    plain = core.Data()
    cipher.seek(0, os.SEEK_SET)

    c.op_decrypt(cipher, plain)
    # Seems like the passphrase is cached.
    #assert passphrase_cb_called == 2, \
    #    "Callback called {} times".format(passphrase_cb_called)
    support.print_data(plain)

    plain.seek(0, os.SEEK_SET)