Installing portable GPG (and GPA) for use on USB drives.
RE Gpg4win 2.3.3 (Released: 2016-08-18)
mkportable Glitch/Bug Workaround
Some folks like to have a portable GPG to carry around on a flash drive for emergencies. Extra security concerns about this, so get informed and be alert, but if you carry only public keys at least you can at least encrypt an unsigned message to someone (or yourself). So how to do? Install GPG4Win, then use mkportable.exe from the command line https://www.gpg4win.org/download.html)
Yes, the command line stuff IS a little geeky, but gotta do some. For portable I basically recommend the ‘light’ version for experienced users of GPG. From the command prompt enter:
path_to_mkportable\mkportable --light path_to_portable_install_dir
BUT WAIT! If you do this and your install directory is not empty, mkportable will refuse to proceed. You can either use the availble ‘force’ option (see mkportable --help) OR you can make sure the portable install directory is empty … including no HIDDEN(!) files. OK, so you got that done.
BUT WAIT! If you proceed again with install you will get an immediate error saying that two dlls are not in the source, and the program terminates. Gack! The mentioned dlls (libgcc_s_sjlj-1.dll, libstdc+±6.dll) ARE (thankfully) present in the GNUPG root directory but are not found in GNUPG/pub where they are apparently expected by mkportable. Copy these dlls to the GNUPG\pub directory (Adminisrator priv may be required), THEN proceed with the install… which now works. The files end up in the portable \pub directory, but apparently this is OK because you can now run GPA.
Now Test. Run GPA, generate a new key which will use the portable keystore (instead of the system GPG keystore), test encrypt/sign and decrypt a file, and if all works you are good to go portable. Note that running gpg from the command line may use the system key stores, which might be a security problem for the friend who lent you their computer… so more tweeks may be needed to do this, but GPA works great, so give that a go.