예제 #1
0
 def insertUser(self, name, passwd):
     """
         Insert user in talbe Users. User password is hashed with salt_p.
         @param name: user name
         @param passwd: user password
     """
     name = name.decode('utf-8')
     passwd = passwd.decode('utf-8')
     # generate salt using cryptographic safe pseudo-random generator
     salt_p = CryptoBasics.genUserPassSalt()
     
     # prepends salts and create hash
     passwd = CryptoBasics.getUserPassHash(salt_p, passwd)
     
     try:
         self._cursor.execute("INSERT INTO Users(name, passwd, salt_p) VALUES(:name, :passwd, :salt_p)",
                               {"name" : name, "passwd" : passwd, "salt_p" : salt_p})
         self._connection.commit()
         logging.info("users with ID: %i, inserted: %s", self._cursor.lastrowid, self._cursor.rowcount)
     except sqlite3.IntegrityError as e:
         logging.warning(e)
     except sqlite3.Error as e:
         logging.exception(e)
         
         self._connection.rollback()
         raise e