+++ /dev/null
-#
-# 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))
+++ /dev/null
-#!/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()