mirror of
https://github.com/rwinkhart/sshyp-labs.git
synced 2026-08-28 04:46:48 -04:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9540e9874f | ||
|
|
0020ac313b | ||
|
|
ee8d875095 | ||
|
|
5d1eeb1f75 | ||
|
|
769f522b2a | ||
|
|
018912cfc5 | ||
|
|
d53fc304d5 | ||
|
|
adcb13fd89 |
@@ -4,9 +4,9 @@ Extensions for the [sshyp password manager](https://github.com/rwinkhart/sshyp).
|
||||
When new functionality is desired that goes outside of sshyp's primary goals or requires venturing outside of the Python standard library, said functionality is implemented as an extension.
|
||||
|
||||
# Installation
|
||||
For sshyp v1.5.0+, sshyp extensions should be installed from the `sshyp tweak` menu's "extension management" option.
|
||||
For most sshyp-supported platforms, sshyp extensions should be installed from the `sshyp tweak` menu's "extension management" option.
|
||||
|
||||
**Do NOT use the packages from the releases page! These are only for older, unsupported releases of sshyp!**
|
||||
For **Haiku and Termux _ONLY_**, use the packages from the [releases page](https://github.com/rwinkhart/sshyp-labs/releases).
|
||||
|
||||
# Available Extensions
|
||||
[sshyp-mfa](https://github.com/rwinkhart/sshyp-labs/wiki/sshyp-mfa): read mfa data from sshyp entries to generate and copy totp keys to the clipboard (optional Steam support)
|
||||
@@ -14,6 +14,6 @@ For sshyp v1.5.0+, sshyp extensions should be installed from the `sshyp tweak` m
|
||||
[password-pasture](https://github.com/rwinkhart/sshyp-labs/wiki/password-pasture): a HIGHLY experimental GTK4 sshyp GUI - very incomplete (last updated for sshyp v1.1.x)
|
||||
|
||||
# Acknowledgements
|
||||
sshyp-mfa relies on [ValvePython/steam](https://github.com/ValvePython/steam) for Steam support.
|
||||
sshyp-mfa optionally depends on [ValvePython/steam](https://github.com/ValvePython/steam) for Steam support.
|
||||
|
||||
sshyp-mfa's TOTP support is partially derrived from [susam/mintotp](https://github.com/susam/mintotp).
|
||||
|
||||
Executable
+80
@@ -0,0 +1,80 @@
|
||||
#!/bin/sh
|
||||
|
||||
version='1.5.0.2'
|
||||
if [ -z "$2" ]; then
|
||||
revision=1
|
||||
else
|
||||
revision="$2"
|
||||
fi
|
||||
|
||||
_create_hpkg() {
|
||||
printf '\npackaging for Haiku...\n'
|
||||
mkdir -p output/haikutemp/lib/sshyp/extensions
|
||||
printf "name sshyp_mfa
|
||||
version "$version"-"$revision"
|
||||
architecture any
|
||||
summary \"An MFA (TOTP/Steam) key generator for the sshyp password manager\"
|
||||
description \"sshyp-mfa is an extension for the sshyp password manager that reads MFA data from sshyp entries and generates generic TOTP and Steam keys.\"
|
||||
packager \"Randall Winkhart <idgr at tutanota dot com>\"
|
||||
vendor \"Randall Winkhart\"
|
||||
licenses {
|
||||
\"GNU GPL v3\"
|
||||
}
|
||||
copyrights {
|
||||
\"2021-2023 Randall Winkhart\"
|
||||
}
|
||||
provides {
|
||||
sshyp_mfa = "$version"
|
||||
}
|
||||
requires {
|
||||
sshyp_client
|
||||
}
|
||||
urls {
|
||||
\"https://github.com/rwinkhart/sshyp-labs\"
|
||||
}
|
||||
" > output/haikutemp/.PackageInfo
|
||||
cp ./sshyp-mfa.py output/haikutemp/lib/sshyp/sshyp-mfa
|
||||
cp ./sshyp-mfa.ini output/haikutemp/lib/sshyp/extensions/
|
||||
sed -i '1 s/.*/#!\/bin\/env\ python3.10/' output/haikutemp/lib/sshyp/sshyp-mfa
|
||||
cd output/haikutemp
|
||||
package create -b HAIKU-sshyp_mfa-"$version"-"$revision"_all.hpkg
|
||||
package add HAIKU-sshyp_mfa-"$version"-"$revision"_all.hpkg lib
|
||||
cd ../..
|
||||
mv output/haikutemp/HAIKU-sshyp_mfa-"$version"-"$revision"_all.hpkg output/
|
||||
rm -rf output/haikutemp
|
||||
printf "\nHaiku packaging complete\n\n"
|
||||
} &&
|
||||
|
||||
_create_termux() {
|
||||
printf '\npackaging for Termux...\n'
|
||||
mkdir -p output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/DEBIAN \
|
||||
output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/data/data/com.termux/files/usr/lib/sshyp/extensions
|
||||
printf "Package: sshyp-mfa
|
||||
Version: $version
|
||||
Section: utils
|
||||
Architecture: all
|
||||
Maintainer: Randall Winkhart <idgr at tutanota dot com>
|
||||
Description: An MFA (TOTP/Steam) key generator for the sshyp password manager
|
||||
Depends: sshyp-client
|
||||
Priority: optional
|
||||
Installed-Size: 100
|
||||
" > output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/DEBIAN/control
|
||||
cp ./sshyp-mfa.py output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/data/data/com.termux/files/usr/lib/sshyp/sshyp-mfa
|
||||
cp ./sshyp-mfa.ini output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/data/data/com.termux/files/usr/lib/sshyp/extensions/
|
||||
dpkg-deb --build --root-owner-group output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux/
|
||||
mv output/termuxtemp/sshyp-mfa_"$version"-"$revision"_all_termux.deb output/TERMUX-sshyp-mfa_"$version"-"$revision"_all.deb
|
||||
rm -rf output/termuxtemp
|
||||
printf '\nTermux packaging complete\n\n'
|
||||
} &&
|
||||
|
||||
case "$1" in
|
||||
haiku)
|
||||
_create_hpkg
|
||||
;;
|
||||
termux)
|
||||
_create_termux
|
||||
;;
|
||||
*)
|
||||
printf '\nusage: package.sh [target] <revision>\n\ntargets: haiku termux\n\n'
|
||||
;;
|
||||
esac
|
||||
@@ -26,7 +26,10 @@ def mfa_read_shortcut(): # extracts MFA info from the user-specified sshyp entr
|
||||
print(f"\n\u001b[38;5;9merror: entry ({arguments[0]}) does not exist\u001b[0m\n")
|
||||
s_exit(1)
|
||||
if quick_unlock_enabled == 'true':
|
||||
_mfa_data = decrypt(directory + arguments[0], _quick_pass=whitelist_verify(port, username_ssh, ip, device_id))
|
||||
_mfa_data = decrypt(directory + arguments[0],
|
||||
_quick_pass=whitelist_verify(sshyp_data.get('SSHYNC', 'port'),
|
||||
sshyp_data.get('SSHYNC', 'user'), sshyp_data.get('SSHYNC', 'ip'),
|
||||
listdir(f"{home}/.config/sshyp/devices")[0]))
|
||||
else:
|
||||
_mfa_data = decrypt(directory + arguments[0])
|
||||
try:
|
||||
@@ -51,12 +54,8 @@ if __name__ == '__main__':
|
||||
# user data fetcher
|
||||
sshyp_data = ConfigParser()
|
||||
sshyp_data.read(f"{home}/.config/sshyp/sshyp.ini")
|
||||
directory = f"{home}/.local/share/sshyp/"
|
||||
quick_unlock_enabled = sshyp_data.get('CLIENT-ONLINE', 'quick_unlock_enabled')
|
||||
username_ssh = sshyp_data.get('SSHYNC', 'user')
|
||||
ip = sshyp_data.get('SSHYNC', 'ip')
|
||||
port = sshyp_data.get('SSHYNC', 'port')
|
||||
directory = sshyp_data.get('SSHYNC', 'local_dir')
|
||||
device_id = listdir(f"{home}/.config/sshyp/devices")[0]
|
||||
|
||||
# main process: runs functions to generate MFA key, then continuously copies up-to-date MFA key to clipboard
|
||||
try:
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
[sshyp-mfa]
|
||||
desc = read mfa data from sshyp entries to generate and copy totp keys to the clipboard (optional Steam support)
|
||||
usage = sshyp /<entry name> copy -m
|
||||
exe = https://raw.githubusercontent.com/rwinkhart/sshyp-labs/v1.5.0.1/extensions/sshyp-mfa/sshyp-mfa.py
|
||||
ini = https://raw.githubusercontent.com/rwinkhart/sshyp-labs/v1.5.0.1/extensions/sshyp-mfa/sshyp-mfa.ini
|
||||
exe = https://raw.githubusercontent.com/rwinkhart/sshyp-labs/v1.5.0.2/extensions/sshyp-mfa/sshyp-mfa.py
|
||||
ini = https://raw.githubusercontent.com/rwinkhart/sshyp-labs/v1.5.0.2/extensions/sshyp-mfa/sshyp-mfa.ini
|
||||
|
||||
Reference in New Issue
Block a user