def read_contact_from_path( privkey_str, contact_path ): contact_json_str = storage.read_encrypted_file( privkey_str, contact_path ) if contact_json_str is None: log.error( "Could not read contact %s" % contact_path ) return None try: contact = storage.json_to_tuple( SyndicateContact, contact_json_str ) except Exception, e: log.error("Failed to load contact %s" % contact_path ) log.exception(e) return None
def read_incoming_message( privkey_str, msg_timestamp, msg_id, volume=None ): mpath = incoming_message_path( msg_timestamp, msg_id ) msg_json = storage.read_encrypted_file( privkey_str, mpath, volume=volume ) if msg_json is None: log.error("Failed to read incoming message %s" % message_handle( msg_timestamp, msg_id )) return None try: msg = storage.json_to_tuple( SyndicateIncomingMessage, msg_json ) except Exception, e: log.error("Failed to parse incoming message") log.exception(e) return None
def read_stored_message( privkey_str, folder, msg_timestamp, msg_id, volume=None, receiver_pubkey_pem=None ): if receiver_pubkey_pem is None: pkey = CryptoKey.importKey( privkey_str ) receiver_pubkey_pem = pkey.publickey().exportKey() mpath = stored_message_path( receiver_pubkey_pem, folder, msg_timestamp, msg_id ) if not storage.path_exists( mpath, volume=volume ): log.error("No message at %s" % mpath ) return None msg_json = storage.read_encrypted_file( privkey_str, mpath, volume=volume ) if msg_json is None: log.error("Failed to read message") return None try: msg = storage.json_to_tuple( SyndicateMessage, msg_json ) except Exception, e: log.error("Failed to parse message") log.exception(e) return None
def read_syndicate_user_id( privkey_pem, volume ): uid_path = storage.volume_path( USER_STORAGE_DIR, "syndicate_user_id" ) return storage.read_encrypted_file( privkey_pem, uid_path, volume=volume )
#------------------------- def read_message_from_volume( vol_inst, sender_pubkey_str, receiver_pubkey_str, receiver_privkey_str, incoming_message ): try: sender_addr_parsed = contact.parse_addr( incoming_message.sender_addr ) except Exception, e: log.exception(e) log.error("Could not parse email") return None log.info("Read message from %s" % (incoming_message.sender_addr)) try: msg_path = stored_message_path( receiver_pubkey_str, SENT_FOLDER, incoming_message.timestamp, incoming_message.id ) msg_json = storage.read_encrypted_file( receiver_privkey_str, msg_path, volume=vol_inst, sender_pubkey_pem=sender_pubkey_str ) except Exception, e: log.exception(e) log.error("Failed to read %s" % msg_path ) return None if msg_json is None: log.error("Failed to read message from Volume") return None # unserialize try: msg = storage.json_to_tuple( SyndicateMessage, msg_json ) except Exception, e: log.exception(e) log.error("Failed to parse %s" % msg_path )