Update 2026-01-25 09:38 OpenBSD/amd64-t14
This commit is contained in:
2
.vim/pack/plugins/start/vim-gnupg/.gitattributes
vendored
Normal file
2
.vim/pack/plugins/start/vim-gnupg/.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.gitignore export-ignore
|
||||
.gitattributes export-ignore
|
||||
3
.vim/pack/plugins/start/vim-gnupg/.gitignore
vendored
Normal file
3
.vim/pack/plugins/start/vim-gnupg/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
doc/tags
|
||||
*.asc
|
||||
*.gpg
|
||||
96
.vim/pack/plugins/start/vim-gnupg/README.md
Normal file
96
.vim/pack/plugins/start/vim-gnupg/README.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# vim-gnupg
|
||||
|
||||
This script implements transparent editing of gpg encrypted files. The filename
|
||||
must have a `.gpg`, `.pgp` or `.asc` suffix. When opening such a file the
|
||||
content is decrypted, when opening a new file the script will ask for the
|
||||
recipients of the encrypted file. The file content will be encrypted to all
|
||||
recipients before it is written. The script turns off viminfo, swapfile, and
|
||||
undofile to increase security.
|
||||
|
||||
## Installation
|
||||
|
||||
Use your favorite [plugin manager](https://github.com/mhinz/vim-galore#managing-plugins).
|
||||
|
||||
For manual installation, use either
|
||||
[pathogen](https://github.com/tpope/vim-pathogen) (for old Vim versions) or
|
||||
Vim's [packages](https://vimhelp.org/repeat.txt.html#packages).
|
||||
|
||||
### pathogen
|
||||
|
||||
Clone or unpack into `$HOME/.vim/bundle`
|
||||
|
||||
### Vim package
|
||||
|
||||
Clone or unpack into `$HOME/.vim/pack/gnupg/start/`
|
||||
|
||||
## GPG Agent
|
||||
|
||||
From `man 1 gpg-agent`:
|
||||
|
||||
> You should always add the following lines to your `.bashrc` or whatever
|
||||
> initialization file is used for all shell invocations:
|
||||
>
|
||||
> GPG_TTY=`tty`
|
||||
> export GPG_TTY
|
||||
>
|
||||
> It is important that this environment variable always reflects the output of
|
||||
> the tty command. For W32 systems this option is not required.
|
||||
|
||||
Most distributions provide software to ease handling of gpg and gpg-agent.
|
||||
Examples are keychain or seahorse.
|
||||
|
||||
## Reacting to opening an encrypted file
|
||||
|
||||
If there are specific actions that should take place when editing a
|
||||
GnuPG-managed buffer, an autocmd for the User event and GnuPG pattern can be
|
||||
defined. For example, the following will set `textwidth` to 72 for all
|
||||
GnuPG-encrypted buffers:
|
||||
|
||||
autocmd User GnuPG setl textwidth=72
|
||||
|
||||
This will be triggered before any BufRead or BufNewFile autocmds, and therefore
|
||||
will not take precedence over settings specific to any filetype that may get
|
||||
set.
|
||||
|
||||
## Known Issues
|
||||
|
||||
In some cases gvim can't decrypt files.
|
||||
|
||||
This is caused by the fact that a running gvim has no TTY and thus gpg is not
|
||||
able to ask for the passphrase by itself. This is a problem for Windows and
|
||||
Linux versions of gvim and could not be solved unless a "terminal emulation" is
|
||||
implemented for gvim. To circumvent this you have to use any combination of
|
||||
gpg-agent and a graphical pinentry program:
|
||||
|
||||
- gpg-agent only:
|
||||
you need to provide the passphrase for the needed key to gpg-agent
|
||||
in a terminal before you open files with gvim which require this key.
|
||||
- pinentry only:
|
||||
you will get a popup window every time you open a file that needs to
|
||||
be decrypted.
|
||||
- gpgagent and pinentry:
|
||||
you will get a popup window the first time you open a file that
|
||||
needs to be decrypted.
|
||||
|
||||
## Credits
|
||||
|
||||
- Mathieu Clabaut for inspirations through his vimspell.vim script.
|
||||
- Richard Bronosky for patch to enable `.pgp` suffix.
|
||||
- Erik Remmelzwaal for patch to enable windows support and patient beta testing.
|
||||
- Lars Becker for patch to make gpg2 working.
|
||||
- Thomas Arendsen Hein for patch to convert encoding of gpg output.
|
||||
- Karl-Heinz Ruskowski for patch to fix unknown recipients and trust model and
|
||||
patient beta testing.
|
||||
- Giel van Schijndel for patch to get `GPG_TTY` dynamically.
|
||||
- Sebastian Luettich for patch to fix issue with symmetric encryption an set
|
||||
recipients.
|
||||
- Tim Swast for patch to generate signed files.
|
||||
- James Vega for patches for better `*.asc` handling, better filename escaping
|
||||
and better handling of multiple keyrings.
|
||||
|
||||
## License
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any later
|
||||
version. See https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
|
||||
1236
.vim/pack/plugins/start/vim-gnupg/autoload/gnupg.vim
Normal file
1236
.vim/pack/plugins/start/vim-gnupg/autoload/gnupg.vim
Normal file
File diff suppressed because it is too large
Load Diff
125
.vim/pack/plugins/start/vim-gnupg/doc/gnupg.txt
Normal file
125
.vim/pack/plugins/start/vim-gnupg/doc/gnupg.txt
Normal file
@@ -0,0 +1,125 @@
|
||||
*gnupg.txt* transparent editing of gpg encrypted files.
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *gnupg*
|
||||
|
||||
This plugin implements transparent editing of gpg encrypted files.
|
||||
|
||||
When opening an encrypted file, the contents are automatically decrypted into
|
||||
the buffer.
|
||||
|
||||
If the buffer is a new file, the plugin will prompt for the intended
|
||||
recipients. When the buffer is saved, the contents will be encrypted for all
|
||||
the configured recipients.
|
||||
|
||||
The plugin turns off |'viminfo'|, |'swapfile'|, and |'undofile'| to avoid
|
||||
writing unencrypted data to disk.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
COMMANDS *gnupg-commands*
|
||||
|
||||
*gnupg-:GPGEditRecipients*
|
||||
:GPGEditRecipients Opens a scratch buffer to change the list of
|
||||
recipients. Recipients that are unknown (not in your
|
||||
public key) are highlighted and have a prepended "!".
|
||||
Closing the buffer makes the changes permanent.
|
||||
|
||||
*gnupg-:GPGViewRecipients*
|
||||
:GPGViewRecipients Prints the list of recipients.
|
||||
|
||||
*gnupg-:GPGEditOptions*
|
||||
:GPGEditOptions Opens a scratch buffer to change the options for
|
||||
encryption (symmetric, asymmetric, signing). Closing
|
||||
the buffer makes the changes permanent. WARNING: There
|
||||
is no check of the entered options, so you need to
|
||||
know what you are doing.
|
||||
|
||||
*gnupg-:GPGViewOptions*
|
||||
:GPGViewOptions Prints the list of options.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
AUTOCMDS *gnupg-autocmds*
|
||||
|
||||
The |User| *GnuPG* event is triggered when an encrypted buffer is loaded.
|
||||
This happens before any |BufRead| or |BufNewFile| events are triggered so
|
||||
filetype-specific options are not overridden.
|
||||
Example: >
|
||||
|
||||
autocmd User GnuPG setlocal textwidth=72
|
||||
|
||||
This sets |'textwidth'| to `72` for any encrypted buffer.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
VARIABLES *gnupg-variables*
|
||||
|
||||
*gnupg-g:GPGExecutable*
|
||||
g:GPGExecutable If set used as gpg executable, otherwise the system
|
||||
chooses what is run when "gpg" is called. Defaults to
|
||||
"gpg".
|
||||
|
||||
*gnupg-g:GPGUseAgent*
|
||||
g:GPGUseAgent If set to 0 a possible available gpg-agent won't be
|
||||
used. Defaults to 1.
|
||||
|
||||
*gnupg-g:GPGPreferSymmetric*
|
||||
g:GPGPreferSymmetric If set to 1 symmetric encryption is preferred for new
|
||||
files. Defaults to 0.
|
||||
|
||||
*gnupg-g:GPGPreferArmor*
|
||||
g:GPGPreferArmor If set to 1 armored data is preferred for new files.
|
||||
Defaults to 0 unless a "*.asc" file is being edited.
|
||||
|
||||
*gnupg-g:GPGPreferSign*
|
||||
g:GPGPreferSign If set to 1 signed data is preferred for new files.
|
||||
Defaults to 0.
|
||||
|
||||
*gnupg-g:GPGDefaultRecipients*
|
||||
g:GPGDefaultRecipients If set, these recipients are used as defaults when no
|
||||
other recipient is defined. This variable is a Vim
|
||||
list. Default is unset.
|
||||
|
||||
*gnupg-g:GPGUsePipes*
|
||||
g:GPGUsePipes If set to 1, use pipes instead of temporary files when
|
||||
interacting with gnupg. When set to 1, this can cause
|
||||
terminal-based gpg agents to not display correctly
|
||||
when prompting for passwords. Defaults to 0.
|
||||
|
||||
*gnupg-g:GPGHomedir*
|
||||
g:GPGHomedir If set, specifies the directory that will be used for
|
||||
GPG's homedir. This corresponds to gpg's --homedir
|
||||
option. This variable is a Vim string.
|
||||
|
||||
*gnupg-g:GPGFilePattern*
|
||||
g:GPGFilePattern If set, overrides the default set of file patterns
|
||||
that determine whether this plugin will be activated.
|
||||
Defaults to `*.{gpg,asc,pgp}`.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
DEBUGGING *gnupg-debugging*
|
||||
|
||||
The plugin honors |'verbose'| and currently has 3 different trace levels:
|
||||
|
||||
1 Plugin and gnupg version, high-level status, and the
|
||||
encrypt/decrypt command line/exit status
|
||||
2 .. plus triggered autocmds, recipient decoding command
|
||||
line/output/exit status, and gnupg's supported algorithms
|
||||
3 .. plus values of relevant Vim options, and tracing of which
|
||||
plugin functions are called
|
||||
|
||||
Example: >
|
||||
|
||||
:verbose edit foo.gpg
|
||||
|
||||
The above would trace everything from level 1 into Vim's |:messages| buffer,
|
||||
as well as display the messages as they happen.
|
||||
|
||||
>
|
||||
:set verbosefile=debug.log
|
||||
:2verbose write foo.gpg
|
||||
:set verbosefile=
|
||||
|
||||
While this would trace everything from levels 1 and 2 into the |:messages|
|
||||
buffer as well as saving it to the file `debug.log`.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user