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." +}