diff --git a/encryption-keybase/encryption-keybase.qml b/encryption-keybase/encryption-keybase.qml
new file mode 100644
index 0000000..1df38e0
--- /dev/null
+++ b/encryption-keybase/encryption-keybase.qml
@@ -0,0 +1,52 @@
+import QtQml 2.0
+
+/**
+ * This script will encrypt and decrypt notes with https://keybase.io
+ *
+ * You have to use your keybase user instead of "pbek"
+ */
+QtObject {
+ property string kaybasePath;
+ property string kaybaseUser;
+
+ // register your settings variables so the user can set them in the script settings
+ property variant settingsVariables: [
+ {
+ "identifier": "kaybasePath",
+ "name": "Keybase executable path",
+ "description": "Please select the path to your keybase
executable:",
+ "type": "file",
+ "default": "/usr/bin/keybase",
+ },
+ {
+ "identifier": "kaybaseUser",
+ "name": "Keybase user",
+ "description": "Please enter your Keybase user name:",
+ "type": "string",
+ "default": "pbek",
+ },
+ ];
+
+ /**
+ * This is called when the script is loaded by QOwnNotes
+ */
+ function init() {
+ // disable the password dialog
+ script.encryptionDisablePassword();
+ }
+
+ /**
+ * This function is called when text has to be encrypted or decrypted
+ *
+ * @param text string the text to encrypt or descrypt
+ * @param password string the password
+ * @param decrypt bool if false encryption is demanded, if true decryption is demanded
+ * @return the exncrypted or decrypted text
+ */
+ function encryptionHook(text, password, decrypt) {
+ // encrypt or decrypt text with keybase.io for user pbek
+ var param = decrypt ? ["decrypt"] : ["encrypt", kaybaseUser];
+ var result = script.startSynchronousProcess(kaybasePath, param, text);
+ return result;
+ }
+}
diff --git a/encryption-keybase/info.json b/encryption-keybase/info.json
new file mode 100644
index 0000000..fbc65ea
--- /dev/null
+++ b/encryption-keybase/info.json
@@ -0,0 +1,9 @@
+{
+ "name": "Keybase Encryption",
+ "identifier": "encryption-keybase",
+ "script": "encryption-keybase.qml",
+ "authors": ["@pbek"],
+ "version": "0.0.1",
+ "minAppVersion": "17.05.7",
+ "description" : "This script will encrypt and decrypt notes with gpg executable:",
+ "type": "file",
+ "default": "/usr/bin/gpg",
+ },
+ {
+ "identifier": "publicKey",
+ "name": "Public PGP Key",
+ "description": "Please enter your public pgp key",
+ "type": "string",
+ "default": "F5161BD3",
+ },
+ ];
+
+ /**
+ * This is called when the script is loaded by QOwnNotes
+ */
+ function init() {
+ // disable the password dialog
+ script.encryptionDisablePassword();
+ }
+
+ /**
+ * This function is called when text has to be encrypted or decrypted
+ *
+ * @param text string the text to encrypt or descrypt
+ * @param password string the password
+ * @param decrypt bool if false encryption is demanded, if true decryption is demanded
+ * @return the exncrypted or decrypted text
+ */
+ function encryptionHook(text, password, decrypt) {
+ // encrypt the text for public key or decrypt with gpg
+ // decryption will only work if you don't have to enter a password
+ var param = decrypt ? ["--decrypt"] : ["--encrypt", "--armor", "-r", publicKey];
+ var result = script.startSynchronousProcess(gpgPath, param, text);
+ return result;
+ }
+}
diff --git a/encryption-pgp/info.json b/encryption-pgp/info.json
new file mode 100644
index 0000000..92b5e58
--- /dev/null
+++ b/encryption-pgp/info.json
@@ -0,0 +1,9 @@
+{
+ "name": "PGP Encryption",
+ "identifier": "encryption-pgp",
+ "script": "encryption-pgp.qml",
+ "authors": ["@pbek"],
+ "version": "0.0.1",
+ "minAppVersion": "17.05.7",
+ "description" : "This script will encrypt and decrypt notes with PGP.\n\nDecryption will only work if you don't have to enter a password."
+}