Esempio n. 1
0
def verifyDatabasePassword(user_key: Fernet, user_password: str) -> bool:
    """verify db pass"""
    try:
        # create a database connection
        conn = createConnection(DATABASE_NAME)
        # create tables
        if conn is not None:
            # read book name from the first record
            cur = conn.cursor()
            cur.execute("SELECT book_name from book where id = ?", (1,))
            record = cur.fetchall()
            for row in record:
                # get encrypted blob
                encrypted_data = row[0]
                # do decrypt and validate
                decrypted_text = decryptDataToText(encrypted_data, user_key)
                if decrypted_text != user_password:
                    print("stored password does not match with provided pass")
                    return False
        else:
            return False
    except:
        traceback.print_exc()
        return False
    finally:
        if conn:
            conn.close()
    return True
Esempio n. 2
0
def getPagesOfBook(user_key: Fernet, bookId: int) -> list:
    """read pages of a book"""
    leaf_list = []
    SQL_READ_ALL_JOURNAL = """
    select id, page_name
    from page
    where book_id = ?
    """
    try:
        conn = createConnection(DATABASE_NAME)
        if conn is not None:
            cur = conn.cursor()
            cur.execute(SQL_READ_ALL_JOURNAL, (bookId,))
            record = cur.fetchall()
            for row in record:
                # read columns
                page_id = row[0]
                page_name = decryptDataToText(row[1], user_key)
                leaf_element = page_id, page_name
                leaf_list.append(leaf_element)
    except:
        traceback.print_exc()
    finally:
        if conn:
            conn.close()
    return sorted(leaf_list, key=take_second) # sort by the second element (page name)
Esempio n. 3
0
def getBooks(user_key: Fernet) -> list:
    """read books from database"""
    leaf_list = []
    SQL_READ_ALL_JOURNAL = """
    select id, book_name 
    from book
    where id >= 2
    """
    try:
        conn = createConnection(DATABASE_NAME)
        if conn is not None:
            cur = conn.cursor()
            cur.execute(SQL_READ_ALL_JOURNAL)
            record = cur.fetchall()
            for row in record:
                # read columns
                book_id = row[0]
                book_name = decryptDataToText(row[1], user_key)
                leaf_element = book_id, book_name
                leaf_list.append(leaf_element)
    except:
        traceback.print_exc()
    finally:
        if conn:
            conn.close()
    return sorted(leaf_list, key=take_second) # sort by the second element (book name)
Esempio n. 4
0
def getPageText(user_key: Fernet, page_id) -> str:
    """get page text"""
    result_text = ""
    SQL_READ_PAGE_TEXT = """
    select page_text from page where id=?
    """
    try:
        conn = createConnection(DATABASE_NAME)
        if conn is not None:
            cur = conn.cursor()
            cur.execute(SQL_READ_PAGE_TEXT, (page_id,))
            record = cur.fetchall()
            for row in record:
                # read columns
                result_text = decryptDataToText(row[0], user_key)
    except:
        traceback.print_exc()
    finally:
        if conn:
            conn.close()
    return result_text
Esempio n. 5
0
def getBookName(user_key: Fernet, book_id: int) -> str:
    """read book name"""
    SQL_READ_BOOK_NAME = """
    select book_name
    from book
    where id=?
    """
    book_name = ""
    try:
        conn = createConnection(DATABASE_NAME)
        if conn is not None:
            cur = conn.cursor()
            cur.execute(SQL_READ_BOOK_NAME, (book_id,))
            record = cur.fetchall()
            for row in record:
                # read columns
                book_name = decryptDataToText(row[0], user_key)
    except:
        traceback.print_exc()
    finally:
        if conn:
            conn.close()
    return book_name