[pass] [PATCH] Don’t reencrypt data not managed by pass.

Sebastian Reuße seb at wirrsal.net
Fri Apr 22 11:40:47 CEST 2016


Sebastian Reuße <seb at wirrsal.net> writes:

> When keeping the password-store under git, it can make sense using a git
> extension such as git-annex instead of the native git object store to
> store the encrypted files. Inter alia, this allows one to selectively
> expire old copies of the encrypted data, while otherwise, one would need
> to recreate the complete repository when a key should no longer have
> access to some of the data.
>
> Since using the git-annex object store means that *.gpg files (and
> directories named *.gpg) are kept under .git/… (non-writable), the
> reencryption logic used by pass currently fails. To remedy this, we now
> ignore everything kept under .git when looking for files to reencrypt or
> when grepping.
> ---
>  src/password-store.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/password-store.sh b/src/password-store.sh
> index 63be840..de4cadc 100755
> --- a/src/password-store.sh
> +++ b/src/password-store.sh
> @@ -111,7 +111,7 @@ reencrypt_path() {
>  			mv "$passfile_temp" "$passfile" || rm -f "$passfile_temp"
>  		fi
>  		prev_gpg_recipients="${GPG_RECIPIENTS[*]}"
> -	done < <(find "$1" -iname '*.gpg' -print0)
> +	done < <(find "$1" -path '*/.git' -prune -o -iname '*.gpg' -print0)
>  }
>  check_sneaky_paths() {
>  	local path
> @@ -352,7 +352,7 @@ cmd_grep() {
>  		passfile="${passfile##*/}"
>  		printf "\e[94m%s\e[1m%s\e[0m:\n" "$passfile_dir" "$passfile"
>  		echo "$grepresults"
> -	done < <(find -L "$PREFIX" -iname '*.gpg' -print0)
> +	done < <(find -L "$PREFIX" -path '*/.git' -prune -o -iname '*.gpg' -print0)
>  }
>  
>  cmd_insert() {

Anyone get a chance to review this? Any pointers? Having this applied
would rid me of needing to maintain a forked version on my machines. ;)

Kind regards,
S.


More information about the Password-Store mailing list