From 488b94e6387f7d05546ff1921beb973ee01defc4 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Fri, 7 Jul 2023 10:12:06 -0400 Subject: [PATCH] Documentation draft for release v1.5.0 Former-commit-id: 0b48dd00fa914cb5c1d734687dae0827a7a00d7c Former-commit-id: 2396087e33fed9982f12cfe3593c4ec43d4f0d89 --- extra/changelog-archive/2023 | 73 ++++++++++++++++++++++++++++++++++-- extra/manpage | 2 +- lib/sshyp.py | 8 ++-- lib/stweak.py | 2 +- 4 files changed, 76 insertions(+), 9 deletions(-) diff --git a/extra/changelog-archive/2023 b/extra/changelog-archive/2023 index 9ead7c3..cded0f0 100644 --- a/extra/changelog-archive/2023 +++ b/extra/changelog-archive/2023 @@ -1,7 +1,74 @@ -sshyp v1.4.99 -06/08/2023 +sshyp v1.5.0 +07/07/2023 -this is an in-progress update +the fortified flock update + +this release implements new curses-based TUI configuration menus and improves the security of sshyp + +compatibility-breaking changes: + +- a completely new configuration system calls for a new configuration file + ^ before using sshyp v1.5.0 for the first time, 'sshyp init' will need to be ran to create the + new configuration file + ^ 'sshyp tweak' has been repurposed as the configuration menu for changing individual options, + rather than re-doing setup entirely - after initialization, this is the one you want to use +- the new extension manager is replacing the old method of installing extensions as system packages + ^ any older extensions you have installed should be uninstalled to prevent conflicts + ^ extensions are now installed and removed through the 'sshyp tweak' menu's extension manager +- all clients and servers must be updated to this release for the folder renaming bug fix to work + ^ failure to update all devices will result in errors and/or potential data loss +- various packaging changes + ^ x-clip and wl-clipboard are now marked as optional dependencies, so the correct tool will + need to be installed as needed - a warning has been added for this if neither package is installed + ^ the changelog no longer ships with sshyp - it is still available on GitHub + +user-facing features: + +- the old configuration menu, 'sshyp tweak', has been split into two new curses-based TUI menus + ^ 'sshyp init' is for first-time setup/initialization + ^ 'sshyp tweak' can be used at any time to quickly adjust individual settings + ^ whitelist management tools have been moved to the new 'sshyp tweak' menu + ^ clients and servers now each have their own dedicated 'sshyp tweak' menu + ^ the new config file is in .INI format, making it easier to edit the config without sshyp +- added a 'sshyp tweak' option for re-encrypting all entries with a new gpg key +- added a security advisory when enabling quick-unlock to ensure the user understands potential risks +- the user is now warned if the clipboard tool relevant to their platform is not installed +- passwords are now hidden by default in the entry reader + ^ they can be displayed by appending '--show' or '-s' to the end of the command +- input is now hidden when adding/editing a password in an entry +- entries are no longer re-encrypted and synced if the note editor is quit without saving + + +fixes/optimizations: + +- a tmpfs is no longer used for decrypting entries unless editing notes + ^ data is now decrypted directly into sshyp and written to entries pre-encrypted + ^ this makes reading entries much more secure + ^ editing entries is similarly secure to before - greater improvements coming in a future update +- folder renaming has been re-enabled and now functions as intended +- some unnecessarily verbose outputs were silenced and/or made to appear more cleanly +- FreeBSD packaging fixes + ^ no longer incorrectly includes and uses the logic for the Termux clipboard + ^ now specifies 'python3' dependency instead of 'python' +- many lists provided to the subprocess module have been swapped with tuples +- more correct and clear language is used to describe options and arguments in the help menus +- properly display an error when attempting to copy blank fields from entries +- shebangs have been removed from libraries not meant to be run directly + +other factors of note: + +- with the release of Debian 12 Bookworm, sshyp is once again fully supported on vanilla Debian + ^ previously, it was only working correctly in offline mode due to Debian 11's old OpenSSH package +- this is the biggest release of sshyp ever + ^ it includes LOTS of minor changes and optimizations not included in the patch notes summary + ^ as such, keep an eye out for new bugs! +- the next major release of sshyp may be even larger... + ^ but it is also likely very far away + ^ GnuPG is great, but it is inherently incompatibile with sshyp's future security model + ^ if all goes according to plan, GnuPG will be replaced in the next release + ^ assuming this happens, this next release will be crowned v2.0.0 + ^ sshyp v1.5.X is expected to be the latest stable release for a longer amount of time than usual + ^ sshyp v1.5.X may recieve security/bug fix patches after the release of v2.0.0, as needed <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> diff --git a/extra/manpage b/extra/manpage index 6dfaab8..3ab9efb 100644 --- a/extra/manpage +++ b/extra/manpage @@ -1,4 +1,4 @@ -.TH sshyp 1 "06 July 2023" "v1.5.0" "sshyp man page" +.TH sshyp 1 "07 July 2023" "v1.5.0" "sshyp man page" .SH NAME \fBsshyp\fR - Simple, self-hosted, synchronized password management for UNIX(-like) systems. Alternative to (and compatible with) pass/password-store. .SH SYNOPSIS diff --git a/lib/sshyp.py b/lib/sshyp.py index fe6975c..d2014b8 100755 --- a/lib/sshyp.py +++ b/lib/sshyp.py @@ -292,10 +292,10 @@ def print_info(): print(f"{_border}{_blank}\n\u001b[38;5;7;48;5;8m/\u001b[38;5;15;48;5;15m{3*' '}\u001b[38;5;15;48;5;8m" f"sshyp ", f"copyright (c) 2021-2023 ", f"randall winkhart\u001b[38;5;15;48;5;15m{3*' '}" f"\u001b[38;5;7;48;5;8m/\u001b[0m\n{_blank}") - print(f"\u001b[38;5;7;48;5;8m/\u001b[38;5;15;48;5;15m{20*' '}\u001b[38;5;15;48;5;8mversion 1.4.99" - f"\u001b[38;5;15;48;5;15m{20*' '}\u001b[38;5;7;48;5;8m/\u001b[0m") - print(f"\u001b[38;5;7;48;5;8m/\u001b[38;5;15;48;5;15m{9*' '}\u001b[38;5;15;48;5;8mthe argumentative " - f"agronomist update\u001b[38;5;15;48;5;15m{10*' '}\u001b[38;5;7;48;5;8m/\u001b[0m") + print(f"\u001b[38;5;7;48;5;8m/\u001b[38;5;15;48;5;15m{20*' '}\u001b[38;5;15;48;5;8mversion 1.5.0" + f"\u001b[38;5;15;48;5;15m{21*' '}\u001b[38;5;7;48;5;8m/\u001b[0m") + print(f"\u001b[38;5;7;48;5;8m/\u001b[38;5;15;48;5;15m{14*' '}\u001b[38;5;15;48;5;8mthe fortified flock" + f" update\u001b[38;5;15;48;5;15m{14*' '}\u001b[38;5;7;48;5;8m/\u001b[0m") print(f"{_blank}\n{_border}\nsee https://github.com/rwinkhart/sshyp for more information\n") elif arguments[0] == 'license': print('\nThis program is free software: you can redistribute it and/or modify it under the terms\nof version 3 ' diff --git a/lib/stweak.py b/lib/stweak.py index ea85c93..64b417a 100644 --- a/lib/stweak.py +++ b/lib/stweak.py @@ -362,7 +362,7 @@ def extension_downloader(): from os import chmod from tempfile import gettempdir from urllib.request import urlopen, urlretrieve - _file_data = urlopen("https://raw.githubusercontent.com/rwinkhart/sshyp-labs/ext-manager/pointers/v1.5.0").read() + _file_data = urlopen("https://raw.githubusercontent.com/rwinkhart/sshyp-labs/main/pointers/v1.5.0").read() _pointer = ConfigParser() _pointer.read_string(_file_data.decode('utf-8')) _extensions = _pointer.sections()