Dropped xxd as it's not working properly on MacOS

This commit is contained in:
斟酌 鵬兄 2022-08-14 00:32:14 +08:00
parent 85c9c3bea3
commit e388f91068

View File

@ -12,11 +12,6 @@ if [ $? -ne 0 ]; then
return 1 return 1
fi fi
if [ -z `which xxd` ]; then
echo "xxd is required" >&2
return 1
fi
_AUTH_DB=$RBASH_HOME/keystore.db _AUTH_DB=$RBASH_HOME/keystore.db
_AUTH_SECRET= _AUTH_SECRET=
_KSTORE_DEF_PROP=${_KSTORE_DEF_PROP:-val} _KSTORE_DEF_PROP=${_KSTORE_DEF_PROP:-val}
@ -36,8 +31,8 @@ function kstore {
search) shift; kstore-search $@ ;; search) shift; kstore-search $@ ;;
secret) shift; kstore-secret $@ ;; secret) shift; kstore-secret $@ ;;
*) *)
__func_head "add key value [prop, default: $_KSTORE_DEF_PROP]" __func_head "add key value|file|- [prop, default: $_KSTORE_DEF_PROP]"
__func_help "update key value [prop, default: $_KSTORE_DEF_PROP]" __func_help "update key value|file|- [prop, default: $_KSTORE_DEF_PROP]"
__func_help "get key [prop, default: $_KSTORE_DEF_PROP]" __func_help "get key [prop, default: $_KSTORE_DEF_PROP]"
__func_help "list" __func_help "list"
__func_help "del key" __func_help "del key"
@ -65,7 +60,7 @@ function kstore-init {
CREATE TABLE IF NOT EXISTS store ( CREATE TABLE IF NOT EXISTS store (
key TEXT UNIQUE NOT NULL key TEXT UNIQUE NOT NULL
, prop TEXT NOT NULL , prop TEXT NOT NULL
, data BLOB , data TEXT
, PRIMARY KEY( key ASC, prop ASC ) , PRIMARY KEY( key ASC, prop ASC )
); );
___SQL___ ___SQL___
@ -82,7 +77,13 @@ function kstore-enc {
return 1 return 1
fi fi
openssl enc -e -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" | xxd -p | tr -d "\n" if [ "$1" == "-" ]; then
openssl enc -e -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" -a -A
elif [ -f "$1" ]; then
openssl enc -e -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" -a -A -in "$1"
else
echo -n "$1" | openssl enc -e -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" -a -A
fi
} }
function kstore-dec { function kstore-dec {
@ -91,7 +92,7 @@ function kstore-dec {
return 1 return 1
fi fi
openssl enc -d -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" openssl enc -d -aes-256-cbc -pbkdf2 -k "$_AUTH_SECRET" -a -A
} }
function kstore-secret-macos { function kstore-secret-macos {
@ -162,7 +163,7 @@ function kstore-update {
kstore-init || return 1 kstore-init || return 1
local _key _val _prop local _key _val _prop
_key=`kstore-quote "$1"` _key=`kstore-quote "$1"`
_val=`echo -n "$2" | kstore-enc` _val=`kstore-enc "$2"`
_val=`kstore-quote "$_val"` _val=`kstore-quote "$_val"`
_prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"`
_cond="key = '$_key' AND prop = '$_prop'" _cond="key = '$_key' AND prop = '$_prop'"
@ -173,12 +174,12 @@ function kstore-add {
kstore-init || return 1 kstore-init || return 1
local _key _val _prop local _key _val _prop
_key=`kstore-quote "$1"` _key=`kstore-quote "$1"`
_val=`echo -n "$2" | kstore-enc` _val=`kstore-enc "$2"`
_val=`kstore-quote "$_val"` _val=`kstore-quote "$_val"`
_prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"`
sqlite3 "$_AUTH_DB" \ sqlite3 "$_AUTH_DB" \
"INSERT INTO store ( key, prop, data ) "INSERT INTO store ( key, prop, data )
VALUES( '$_key', '$_prop', X'$_val' );" VALUES( '$_key', '$_prop', '$_val' );"
} }
function kstore-get { function kstore-get {
@ -188,7 +189,12 @@ function kstore-get {
_prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"`
_cond="key = '$_key' AND prop = '$_prop'" _cond="key = '$_key' AND prop = '$_prop'"
echo -n "`$_SQLITE -list "$_AUTH_DB" "SELECT ( data ) FROM store WHERE $_cond;"`" | kstore-dec sqlite3 "$_AUTH_DB" "SELECT 1111 FROM store WHERE $_cond;" | grep -q 1111
if [ $? -eq 0 ]; then
$_SQLITE -list "$_AUTH_DB" "SELECT ( data ) FROM store WHERE $_cond;" | kstore-dec
else
echo "\"$1\" not found" >&2
fi
} }
function kstore-del { function kstore-del {
@ -213,7 +219,7 @@ function kstore-del {
echo "action canceled" echo "action canceled"
fi fi
else else
echo "$1 not found" echo "\"$1\" not found" >&2
fi fi
} }