12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/bin/bash
-
- TMP_IN=$(mktemp /tmp/mpass.XXXXXXXXXX)
- TMP_OUT=$(mktemp /tmp/mpass.XXXXXXXXXX)
-
- function cleanup
- {
- rm "$TMP_IN" 2>&1 > /dev/null
- rm "$TMP_OUT" 2>&1 > /dev/null
- }
-
- function getpass
- {
- echo -n $(cat ~/.mpassword)
- }
-
- function tryerr
- {
- if [ "$?" != "0" ]; then
- merror "An error occurred."
- cleanup
- exit 1
- fi
-
- if [ "$1" != "" ]; then
- if [ "$1" != "0" ]; then
- merror "An error occurred." "$1"
- cleanup
- exit 1
- fi
- fi
- }
-
- # Create password: mpass create <name> [chars]
- if [ "$1" = "create" ]; then
- if [ "$2" = "" ]; then
- echo "Usage: mpass create <name> [chars]"
- cleanup
- exit 1
- fi
-
- if [ "$3" = "" ]; then
- nchars="32"
- else
- nchars="$3"
- fi
-
- chars=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c "$nchars")
-
- echo "$chars" > "$TMP_IN"
- echo "$chars" | mclip
-
- getpass | openssl enc -aes-256-cbc -a -in "$TMP_IN" -out "$TMP_OUT" -pass stdin
- tryerr
-
- enc=$(cat "$TMP_OUT")
-
- passsum=$(getpass | shasum -a 512 | cut -d ' ' -f 1)
-
- code=$(curl -s -X POST -d "$enc" "http://pass.mort.coffee/put/$2/$passsum")
- tryerr "$code"
-
- echo "$chars"
-
- mnotify "Password created" "$2"
-
- # Get password: mpass get <name>
- elif [ "$1" = "get" ]; then
- if [ "$2" = "" ]; then
- echo "Usage: mpass get <name>"
- cleanup
- exit 1
- fi
-
- curl -s "http://pass.mort.coffee/get/$2" > "$TMP_IN"
- tryerr
- if [ ! -s "$TMP_IN" ]; then
- tryerr "Pasword doesn't exist."
- fi
-
- echo -n "$enc" >> "$TMP_IN"
-
- getpass | openssl enc -aes-256-cbc -a -d -in "$TMP_IN" -out "$TMP_OUT" -pass stdin
- tryerr
-
- chars=$(cat "$TMP_OUT")
-
- echo -n "$chars" | mclip
- echo "$chars"
-
- mnotify "Password received" "$2"
- fi
-
- cleanup
|