Simple image host.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. TMP_IN=$(mktemp /tmp/mpass.XXXXXXXXXX)
  3. TMP_OUT=$(mktemp /tmp/mpass.XXXXXXXXXX)
  4. function cleanup
  5. {
  6. rm "$TMP_IN" 2>&1 > /dev/null
  7. rm "$TMP_OUT" 2>&1 > /dev/null
  8. }
  9. # Create password: mpass create <name> [chars]
  10. if [ "$1" = "create" ]; then
  11. if [ "$2" = "" ]; then
  12. echo "Usage: mpass create <name> [chars]"
  13. cleanup
  14. exit 1
  15. fi
  16. if [ "$3" = "" ]; then
  17. nchars="32"
  18. else
  19. nchars="$3"
  20. fi
  21. chars=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c "$nchars")
  22. echo "$chars" > "$TMP_IN"
  23. echo "$chars" | mclip
  24. openssl enc -aes-256-cbc -salt -a -in "$TMP_IN" -out "$TMP_OUT" -pass "file:$HOME/.mpassword"
  25. enc=$(cat "$TMP_OUT")
  26. passsum=$(shasum -a 512 < ~/.mpassword | cut -d ' ' -f 1)
  27. code=$(curl -s -X POST -d "$enc" "http://pass.mort.coffee/put/$2/$passsum")
  28. if [ "$code" != "200" ]; then
  29. echo "Error: $code"
  30. cleanup
  31. exit 1
  32. fi
  33. echo "$chars"
  34. # Get password: mpass get <name>
  35. elif [ "$1" = "get" ]; then
  36. if [ "$2" = "" ]; then
  37. echo "Usage: mpass get <name>"
  38. cleanup
  39. exit 1
  40. fi
  41. curl -s "http://pass.mort.coffee/get/$2" > $TMP_IN
  42. openssl enc -aes-256-cbc -d -a -in "$TMP_IN" -out "$TMP_OUT" -pass "file:$HOME/.mpassword"
  43. echo $(cat "$TMP_OUT") | mclip
  44. echo $(cat "$TMP_OUT")
  45. fi
  46. cleanup