"""Hash implementation and save in database """ import hashlib from citext import CIText from sqlalchemy import Column from sqlalchemy.dialects.postgresql import UUID from uuid import uuid4 from ereuse_devicehub.db import db class ReportHash(db.Model): """Save the hash than is create when one report is download. """ id = Column(UUID(as_uuid=True), primary_key=True, default=uuid4) id.comment = """The identifier of the device for this database. Used only internally for software; users should not use this. """ hash3 = db.Column(CIText(), nullable=False) hash3.comment = """The normalized name of the hash.""" def insert_hash(bfile): hash3 = hashlib.sha3_256(bfile).hexdigest() db_hash = ReportHash(hash3=hash3) db.session.add(db_hash) db.session.commit() db.session.flush()