예제 #1
0
def store_incoming_message( pubkey_str, message, volume=None ):
   try:
      message_json = storage.tuple_to_json( message )
   except Exception, e:
      log.error("Failed to serialize incoming message")
      log.exception(e)
      return False
예제 #2
0
def write_gateway_privkey( password, gateway_name, gateway_privkey_str ):
   encrypted_data = keys.encrypt_private_key( gateway_privkey_str, password )
   try:
      encrypted_data_json = storage.tuple_to_json( encrypted_data )
   except Exception, e:
      log.exception(e)
      log.error("Failed to serialize encrypted private gateway key" )
      return None
예제 #3
0
def store_message( receiver_pubkey_str, sender_privkey_str, folder, message, attachment_paths, attachment_data ):
   
   try:
      message_json = storage.tuple_to_json( message )
   except Exception, e:
      log.error("Failed to serialize message")
      log.exception(e)
      return False
예제 #4
0
def store_private_key_to_path( key_path, privkey, password, volume ):
   privkey_str = privkey.exportKey()
   
   encrypted_private_key = encrypt_private_key( privkey_str, password )

   try:
      encrypted_privkey_json = storage.tuple_to_json( encrypted_private_key )
   except Exception, e:
      log.error("Failed to serialize encrypted private key")
      return False
예제 #5
0
def write_contact( pubkey_str, contact ):
   global STORAGE_DIR
   
   contact_path = make_contact_path( pubkey_str, contact.addr )
   
   try:
      contact_json = storage.tuple_to_json( contact )
   except Exception, e:
      log.error("Failed to serialize contact")
      log.exception(e)
      return False
예제 #6
0
def post_message(sender_privkey_pem, encrypted_incoming_message, use_http=False):
    # called by the endpoint
    # start to inform the recipient's server that they have a new message
    # EncryptedIncomingMessage = collections.namedtuple( "EncryptedIncomingMessage", ["incoming_message_ciphertext", "sender_addr", "receiver_addr", "signature"] )
    # serialize this
    try:
        data = storage.tuple_to_json(encrypted_incoming_message)
        data = base64.b64encode(data)
    except Exception, e:
        log.exception(e)
        log.error("Failed to serialize")
        return False
예제 #7
0
def store_public_key( key_name, pubkey, syndicate_user_privkey ):
   pubkey_str = pubkey.publickey().exportKey()
   
   signature = sign_public_key( pubkey_str, syndicate_user_privkey )
   
   pubkey = SignedPublicKey( signature=base64.b64encode(signature), pubkey_str=pubkey_str )
   
   try:
      pubkey_json = storage.tuple_to_json( pubkey )
   except Exception, e:
      log.error("Failed to serialize signed public key")
      log.exception(e)
      return False
예제 #8
0
def make_outbound_message( pubkey_str, privkey_str, contact_rec, message ):
   
   # generate an incoming message to be sent to this contact's email server
   incoming_message = SyndicateIncomingMessage( id=message.id,
                                                sender_addr=message.sender_addr,
                                                receiver_addrs=message.receiver_addrs,
                                                cc_addrs=message.cc_addrs,
                                                subject=message.subject,
                                                timestamp=message.timestamp,
                                                handle=message.handle,
                                                attachment_names=message.attachment_names,
                                                message_signature=message.signature,
                                                verified=True )
   
   # serialize outbound incoming message
   try:
      incoming_message_json = storage.tuple_to_json( incoming_message )
   except Exception, e:
      log.exception(e)
      log.error("Failed to serialize outbound message to %s" % contact_rec.addr)
      return rc