1 # -*- coding: iso-8859-1 -*- 2 """ 3 sendkey - Send key using MoinMessage 4 5 @copyright: 2013, 2014 by Paul Boddie <paul@boddie.org.uk> 6 @license: GNU GPL (v2 or later), see COPYING.txt for details. 7 """ 8 9 from MoinMessage import Message, GPG, sendMessage 10 from email.mime.application import MIMEApplication 11 from email.mime.text import MIMEText 12 import sys 13 14 def readkey(filename): 15 f = open(filename, "rb") 16 try: 17 return MIMEApplication(f.read(), "pgp-keys") 18 finally: 19 f.close() 20 21 if __name__ == "__main__": 22 try: 23 recipient = sys.argv[1] 24 url = sys.argv[2] 25 filename = sys.argv[3] 26 secret = sys.argv[4] 27 except IndexError: 28 secret = None 29 30 if not secret: 31 print >>sys.stderr, """\ 32 Need a recipient key identifier, the destination URL, a key filename, and a 33 secret as arguments to this program. 34 """ 35 sys.exit(1) 36 37 # Bundle the key and secret into a message. 38 39 message = Message() 40 41 part = readkey(filename) 42 message.add_update(part) 43 44 part = MIMEText(secret) 45 message.add_update(part) 46 47 # Get the e-mail message itself. 48 49 email_message = message.get_payload("x-moinmessage-keys") 50 51 # Sign (for authorship), encrypt (for privacy), sign (for authentication), 52 # and send the message. 53 54 gpg = GPG() 55 encrypted_message = gpg.encryptMessage(email_message, recipient) 56 57 resp = sendMessage(encrypted_message, url) 58 59 print resp 60 61 # vim: tabstop=4 expandtab shiftwidth=4