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
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)
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)
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
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