Exemple #1
0
def get_handler(environ):

    query = ht.parse_get_request(environ)
    cookies = ht.parse_cookies(environ)

    user_id = ht.get_required_cookie(cookies, 'user_id')
    session_id = ht.get_required_cookie(cookies, 'session_id')

    node_name = ht.get_required(query, 'node_name')
    group_id = ht.get_required(query, 'group_id')
    owner_id = ht.get_required(query, 'owner_id')
    post_id = ht.get_required(query, 'post_id')
    passphrase = ht.get_optional(query, 'passphrase')
    decrypt_post = ht.convert_bool(ht.get_optional(query, 'decrypt_post'), 'decrypt_post')

    conn = db.connect(config.db_path)
    try:
        c = db.cursor(conn)
        resp, validation = db.read_post(c,
                user_id, session_id, node_name, group_id, owner_id, post_id,
                passphrase, decrypt_post)

        raise ht.ok_json({'status' : 'ok', 'resp' : resp, 'validation' : validation})
        
    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)
Exemple #2
0
def get_handler(environ):

    query = ht.parse_get_request(environ)
    cookies = ht.parse_cookies(environ)

    user_id = ht.get_required_cookie(cookies, 'user_id')
    session_id = ht.get_required_cookie(cookies, 'session_id')

    node_name = ht.get_required(query, 'node_name')
    message_id = ht.get_required(query, 'message_id')
    public_key_hash = ht.get_required(query, 'public_key_hash')
    passphrase = ht.get_optional(query, 'passphrase')
    to_key_passphrase = ht.get_optional(query, 'to_key_passphrase')
    decrypt_message = ht.convert_bool(ht.get_optional(query, 'decrypt_message'), 'decrypt_message')

    conn = db.connect(config.db_path)
    try:
        c = db.cursor(conn)
        resp, validation = db.read_message(c, user_id, session_id, node_name, message_id,
                                           public_key_hash, passphrase,
                                           to_key_passphrase, decrypt_message)

        raise ht.ok_json({'status' : 'ok',
                          'resp' : resp,
                          'validation' : validation})
        
    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)
Exemple #3
0
def get_handler(environ):

    query = ht.parse_get_request(environ)

    action = ht.get_required(query, 'action')

    conn = db.connect(config.db_path)
    try:
        res = None

        if action == 'database':
            c = db.cursor(conn)
            res = db.read_database(c)
        elif action == 'integrity':
            all_local = ht.convert_bool(ht.get_required(query, 'all_local'), 'all_local')
            c1 = db.cursor(conn)
            c2 = db.cursor(conn)
            res = db.check_integrity(c1, c2, all_local)
        else:
            raise ht.BadFieldResponse('action', action)

        raise ht.ok_json({'status' : 'ok', 'res' : res})

    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)
Exemple #4
0
def get_handler(environ):

    query = ht.parse_get_request(environ)
    cookies = ht.parse_cookies(environ)

    user_id = ht.get_required_cookie(cookies, 'user_id')
    session_id = ht.get_required_cookie(cookies, 'session_id')

    public_key_hash = ht.get_required(query, 'public_key_hash')
    only_public_part = ht.convert_bool(ht.get_optional(query, 'only_public_part'), 'only_public_part')
    allow_private_user_key = ht.convert_bool(ht.get_optional(query, 'allow_private_user_key'), 'allow_private_user_key')

    conn = db.connect(config.db_path)
    try:
        c = db.cursor(conn)
        key = db.read_private_key(c, user_id, session_id, public_key_hash, only_public_part, allow_private_user_key)

        raise ht.ok_json({'status' : 'ok', 'key' : key})
        
    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)
Exemple #5
0
def post_handler(environ):

    query = ht.parse_post_request(environ)
    cookies = ht.parse_cookies(environ)

    user_id = ht.get_required_cookie(cookies, 'user_id')
    session_id = ht.get_required_cookie(cookies, 'session_id')

    node_name = ht.get_required(query, 'node_name')
    to_user = ht.get_required(query, 'to_user')
    to_user_key_hash = ht.get_optional(query, 'to_user_key_hash')
    from_user_key_hash = ht.get_optional(query, 'from_user_key_hash')
    message  = ht.get_required(query, 'message')
    passphrase = ht.get_optional(query, 'passphrase')
    force_encryption = ht.convert_bool(ht.get_optional(query, 'force_encryption'), 'force_encryption')

    conn = db.connect(config.db_path)
    try:
        c = db.cursor(conn)
        resp, local_gen = db.send_message(c, user_id, session_id,
                                          node_name, to_user, to_user_key_hash, from_user_key_hash,
                                          message, passphrase, force_encryption)
        (message_id, timestamp, message_hash, from_signature, proof_of_work) = local_gen

        db.commit(conn)

        raise ht.ok_json({'status' : 'ok',
                          'resp' : resp,
                          'message_id' : message_id,
                          'timestamp' : timestamp,
                          'message_hash' : message_hash,
                          'from_signature' : from_signature,
                          'proof_of_work' : proof_of_work})

    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)
Exemple #6
0
def post_handler(environ):

    query = ht.parse_post_request(environ)
    cookies = ht.parse_cookies(environ)

    user_id = ht.get_required_cookie(cookies, 'user_id')
    session_id = ht.get_required_cookie(cookies, 'session_id')

    node_name = ht.get_required(query, 'node_name')
    group_id = ht.get_required(query, 'group_id')
    owner_id = ht.get_required(query, 'owner_id')
    data = ht.get_required(query, 'data')
    passphrase = ht.get_optional(query, 'passphrase')
    force_encryption = ht.convert_bool(ht.get_optional(query, 'force_encryption'), 'force_encryption')

    conn = db.connect(config.db_path)
    try:
        c = db.cursor(conn)
        resp, local_gen = db.make_post(c, user_id, session_id, node_name, group_id, owner_id, data,
                                       passphrase, force_encryption)

        (post_id, timestamp, data_hash, post_signature, proof_of_work) = local_gen

        db.commit(conn)

        raise ht.ok_json({'status' : 'ok',
                          'resp' : resp,
                          'post_id' : post_id,
                          'timestamp' : timestamp,
                          'data_hash' : data_hash,
                          'post_signature' : post_signature,
                          'proof_of_work' : proof_of_work})

    except ex.SqueakException as e:
        raise ht.convert_squeak_exception(e)

    finally:
        db.close(conn)