diff --git a/server/src/vault.ts b/server/src/vault.ts
new file mode 100644
index 0000000..a0ae67c
--- /dev/null
+++ b/server/src/vault.ts
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2022 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.  If not, see
+ * <https://www.gnu.org/licenses/>.
+ */
+import { readFile } from 'node:fs/promises';
+
+import { importPKCS8, importSPKI } from 'jose';
+import { Service } from 'typedi';
+
+@Service()
+export class Vault {
+  async privKey() {
+    const privKeyBuf = await readFile('privkey.pem');
+    return importPKCS8(privKeyBuf.toString(), 'EdDSA');
+  }
+
+  async pubKey() {
+    const pubKeyBuf = await readFile('pubkey.pem');
+    return importSPKI(pubKeyBuf.toString(), 'EdDSA');
+  }
+}
