diff options
author | Daniel F. Dickinson <cshored@thecshore.com> | 2019-01-02 06:18:40 -0500 |
---|---|---|
committer | Daniel F. Dickinson <cshored@thecshore.com> | 2019-01-10 05:52:12 -0500 |
commit | 29e01e0e5b4bf9a25e88de7309637b0f461ef6a9 (patch) | |
tree | 92343df8693a4ef380504fe2f2359d21a4eced20 /libs/rpcd-mod-rad2-enc/files/rad2-enc | |
parent | 1893892581707fcd83e684a7a03dd6b5d3c2c3a2 (diff) |
luci-app-radicale2: Add v2 of CalDAV/CardDAV server
Radicale 2.x has been out for some time, and has better support for a
number of clients as well as new features, so radicale2 package has
been added to packages, and this is the corresponding UI.
Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
Diffstat (limited to 'libs/rpcd-mod-rad2-enc/files/rad2-enc')
-rwxr-xr-x | libs/rpcd-mod-rad2-enc/files/rad2-enc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/libs/rpcd-mod-rad2-enc/files/rad2-enc b/libs/rpcd-mod-rad2-enc/files/rad2-enc new file mode 100755 index 000000000..43bc49325 --- /dev/null +++ b/libs/rpcd-mod-rad2-enc/files/rad2-enc @@ -0,0 +1,50 @@ +#!/usr/bin/python3 + +import base64 +import sys +import json +from passlib import hash + +def main(): + + if len(sys.argv) < 2: + return -1 + + if sys.argv[1] == 'list': + print('{ "encrypt": { "type": "str", "plainpass": "str" } }\n') + return 0 + + if sys.argv[1] == 'call': + if len(sys.argv) < 3: + return -1 + + if sys.argv[2] != 'encrypt': + return -1 + + encpass = "" + try: + jsonin = json.loads(sys.stdin.readline()) + enctype = jsonin['type'].strip() + plainpass = jsonin['plainpass'] + + if enctype == 'ssha': + encpass = hash.ldap_salted_sha1.hash(plainpass) + elif enctype == 'sha1': + encpass = hash.ldap_sha1.hash(plainpass) + elif enctype == 'plain': + encpass = plainpass + elif enctype == 'md5': + encpass = hash.apr_md5_crypt.hash(plainpass) + elif enctype == 'bcrypt': + encpass = hash.bcrypt.hash(plainpass) + elif enctype == 'crypt': + encpass = hash.des_crypt.hash(plainpass) + + except: + encpass = "" + + print(json.dumps({ "encrypted_password": encpass})) + + return 0 + +main() |