| | |
| | from flask_login import UserMixin |
| | from . import db |
| |
|
| | class User(UserMixin, db.Model): |
| | id = db.Column(db.Integer, primary_key=True) |
| | email = db.Column(db.String(150), unique=True) |
| | password = db.Column(db.String(150)) |
| | first_name = db.Column(db.String(150)) |
| | google_id = db.Column(db.String(150)) |
| | |
| | |
| | profile_image = db.Column(db.Text) |
| | orig_profile_image = db.Column(db.Text) |
| | |
| | |
| | biometric_devices = db.relationship("BiometricDevice", backref="user", lazy=True) |
| |
|
| | class BiometricDevice(db.Model): |
| | """ |
| | Stores the Public Key for WebAuthn/FIDO2 Authentication. |
| | """ |
| | __tablename__ = "biometric_device" |
| | id = db.Column(db.Integer, primary_key=True) |
| | user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) |
| | credential_id = db.Column(db.String(255), unique=True, nullable=False) |
| | public_key = db.Column(db.LargeBinary, nullable=False) |
| | sign_count = db.Column(db.Integer, default=0) |
| |
|
| | class DeadDrop(db.Model): |
| | __tablename__ = "dead_drop" |
| | id = db.Column(db.String(36), primary_key=True) |
| | ciphertext = db.Column(db.Text, nullable=False) |
| | iv = db.Column(db.String(64), nullable=False) |
| | salt = db.Column(db.String(64), nullable=False) |
| | expires_at = db.Column(db.DateTime, nullable=False) |
| | created_at = db.Column(db.DateTime) |
| | view_time = db.Column(db.Integer, default=30) |