From afc5b6fe1a08f6ed8a69d6d8d46f59a586b84941 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sun, 8 Mar 2020 23:09:32 +0100 Subject: [PATCH] add init_app that loads all GPG key --- init_app.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 init_app.py diff --git a/init_app.py b/init_app.py new file mode 100644 index 00000000..a5b255ef --- /dev/null +++ b/init_app.py @@ -0,0 +1,28 @@ +"""Initial loading script""" +from app.models import Mailbox +from app.log import LOG +from app.extensions import db +from app.pgp_utils import load_public_key +from server import create_app + + +def load_pgp_public_keys(app): + """Load PGP public key to keyring""" + with app.app_context(): + for mailbox in Mailbox.query.filter(Mailbox.pgp_public_key != None).all(): + LOG.d("Load PGP key for mailbox %s", mailbox) + fingerprint = load_public_key(mailbox.pgp_public_key) + + # sanity check + if fingerprint != mailbox.pgp_finger_print: + LOG.error("fingerprint %s different for mailbox %s", fingerprint, mailbox) + mailbox.pgp_finger_print = fingerprint + + db.session.commit() + + +if __name__ == "__main__": + app = create_app() + + with app.app_context(): + load_pgp_public_keys(app)