123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/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=$(LC_ALL=C 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 "" >> "$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
|