summaryrefslogtreecommitdiffhomepage
path: root/libs
diff options
context:
space:
mode:
authorDaniel F. Dickinson <cshored@thecshore.com>2019-01-02 06:18:40 -0500
committerDaniel F. Dickinson <cshored@thecshore.com>2019-01-10 05:52:12 -0500
commit29e01e0e5b4bf9a25e88de7309637b0f461ef6a9 (patch)
tree92343df8693a4ef380504fe2f2359d21a4eced20 /libs
parent1893892581707fcd83e684a7a03dd6b5d3c2c3a2 (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')
-rw-r--r--libs/rpcd-mod-rad2-enc/Makefile49
-rwxr-xr-xlibs/rpcd-mod-rad2-enc/files/rad2-enc50
2 files changed, 99 insertions, 0 deletions
diff --git a/libs/rpcd-mod-rad2-enc/Makefile b/libs/rpcd-mod-rad2-enc/Makefile
new file mode 100644
index 0000000000..4cffc01cd3
--- /dev/null
+++ b/libs/rpcd-mod-rad2-enc/Makefile
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io>
+#
+# Licensed under the Apache License, Version 2.0.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rpcd-mod-rad2-enc
+PKG_VERSION:=20190109
+PKG_MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
+
+PKG_LICENSE:=Apache-2.0
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Build/Prepare
+ true
+endef
+
+define Build/Compile
+ true
+endef
+
+define Package/rpcd-mod-rad2-enc
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Radicale 2.x Hashing RPC module
+ DEPENDS:=+rpcd +python3 +python3-passlib
+endef
+
+define Package/rpcd-mod-rad2-enc/description
+ Python3 password hashing module for use Radicale 2.x LuCI app
+endef
+
+define Package/rpcd-mod-rad2-enc/install
+ $(INSTALL_DIR) $(1)/usr/libexec/rpcd
+ $(INSTALL_BIN) ./files/rad2-enc $(1)/usr/libexec/rpcd
+endef
+
+define Package/rpcd-mod-rad2-enc/postinst
+#!/bin/sh
+killall -HUP rpcd 2>/dev/null
+exit 0
+endef
+
+$(eval $(call BuildPackage,rpcd-mod-rad2-enc))
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 0000000000..43bc49325c
--- /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()