1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/scripts/sendkey.py Mon Jan 13 00:18:40 2014 +0100
1.3 @@ -0,0 +1,61 @@
1.4 +# -*- coding: iso-8859-1 -*-
1.5 +"""
1.6 + sendkey - Send key using MoinMessage
1.7 +
1.8 + @copyright: 2013, 2014 by Paul Boddie <paul@boddie.org.uk>
1.9 + @license: GNU GPL (v2 or later), see COPYING.txt for details.
1.10 +"""
1.11 +
1.12 +from MoinMessage import Message, GPG, sendMessage
1.13 +from email.mime.application import MIMEApplication
1.14 +from email.mime.text import MIMEText
1.15 +import sys
1.16 +
1.17 +def readkey(filename):
1.18 + f = open(filename, "rb")
1.19 + try:
1.20 + return MIMEApplication(f.read(), "pgp-keys")
1.21 + finally:
1.22 + f.close()
1.23 +
1.24 +if __name__ == "__main__":
1.25 + try:
1.26 + recipient = sys.argv[1]
1.27 + url = sys.argv[2]
1.28 + filename = sys.argv[3]
1.29 + secret = sys.argv[4]
1.30 + except IndexError:
1.31 + secret = None
1.32 +
1.33 + if not secret:
1.34 + print >>sys.stderr, """\
1.35 +Need a recipient key identifier, the destination URL, a key filename, and a
1.36 +secret as arguments to this program.
1.37 +"""
1.38 + sys.exit(1)
1.39 +
1.40 + # Bundle the key and secret into a message.
1.41 +
1.42 + message = Message()
1.43 +
1.44 + part = readkey(filename)
1.45 + message.add_update(part)
1.46 +
1.47 + part = MIMEText(secret)
1.48 + message.add_update(part)
1.49 +
1.50 + # Get the e-mail message itself.
1.51 +
1.52 + email_message = message.get_payload("x-moinmessage-keys")
1.53 +
1.54 + # Sign (for authorship), encrypt (for privacy), sign (for authentication),
1.55 + # and send the message.
1.56 +
1.57 + gpg = GPG()
1.58 + encrypted_message = gpg.encryptMessage(email_message, recipient)
1.59 +
1.60 + resp = sendMessage(encrypted_message, url)
1.61 +
1.62 + print resp
1.63 +
1.64 +# vim: tabstop=4 expandtab shiftwidth=4