687 Commits

Author SHA1 Message Date
drduh
7513db34cc Merge pull request #525 from dennisxtria/patch-1
Revise markdown instructions in README
2025-12-13 09:09:04 -08:00
Dennis Triantafyllis
40e47c3c02 Revise markdown instructions in README
Updated SSH authentication note to reflect usage.
2025-12-01 14:06:36 +02:00
drduh
98fdcad708 Merge pull request #524 from zeorin/feat/nix-update
Nix flake update
2025-11-01 08:22:38 -07:00
Xandor Schiefer
3cbd8cae36 Update all mkdir commands to create parent directories if necessary 2025-10-27 11:20:25 +02:00
Xandor Schiefer
ba013d793a Update nix build commands 2025-10-27 11:20:17 +02:00
Xandor Schiefer
bec44a6715 Update Nix flake to latest 25.05 (current stable) 2025-10-27 11:20:11 +02:00
drduh
adc41e5abc Merge pull request #523 from ajschmidt8/patch-1
Fix command to upload key to `keys.openpgp.org`
2025-10-25 15:50:03 -07:00
AJ Schmidt
fb28e84573 Fix command to upload key to keys.openpgp.org
fixed based on usage instructions here: https://keys.openpgp.org/about/usage/
2025-10-22 15:34:37 -04:00
drduh
e8bc59e690 Merge pull request #522 from meonkeys/keysigning-caveat
document keysigning issue with offline certify key
2025-10-17 17:00:41 -07:00
Adam Monsen
57998be067 document keysigning issue with offline certify key 2025-10-13 08:15:13 -07:00
drduh
37296f7ae9 Merge pull request #521 from dhl/update-fedora-deps
fix: Remove non-essential dependencies for Fedora
2025-09-17 17:10:10 -07:00
drduh
10d1a82356 Merge pull request #520 from davidxia/patch-1
fix two minor typos
2025-09-17 17:09:30 -07:00
David Leung
8fe5399cb8 fix: Remove non-essential dependencies for Fedora 2025-09-01 13:26:29 +08:00
David Xia
2b375e94f2 fix two minor typos 2025-08-09 09:52:58 -04:00
drduh
997ba48130 Merge pull request #515 from davidxia/patch2
fix: use working command to get GPG public key
2025-07-29 23:57:05 +00:00
David Xia
dc0797a987 fix: use working command to get GPG public key
Use `gpg --edit-card` instead of `gpg-card` command.

fixes #513

Signed-off-by: David Xia <david@davidxia.com>
2025-07-29 13:14:38 -04:00
drduh
a089002e35 Merge pull request #514 from davidxia/patch1
fix: add missing macOS `brew` command
2025-07-28 01:02:18 +00:00
drduh
cb38022738 Merge pull request #510 from Paraphraser/20250618-gpg-agent.conf-master
2025-06-18 gpg-agent.conf better default pinentry-program behaviour
2025-07-28 01:00:33 +00:00
David Xia
0dd1bf1393 fix: add missing macOS brew command
that's the equivalent of the MacPorts command to the "Using YubiKey" section.

Signed-off-by: David Xia <david@davidxia.com>
2025-07-24 10:57:46 -04:00
drduh
08a22f8bde Merge pull request #509 from drduh/wip-jun25
note on ed25519 auth subkey, buff generate script
2025-06-18 23:58:31 +00:00
Phill Kelley
b365be4dc3 2025-06-18 gpg-agent.conf better default pinentry-program behaviour
Adjusts the `gpg-agent.conf` template as follows:

1. Adds more `pinentry-program` variants likely to be found on current
   Linux and macOS systems.

2. Groups entries by OS and package.

3. Makes all `pinentry-program` directives inactive (commented-out).

At present, the `pinentry-program` directive active by default is:

```
pinentry-program /usr/bin/pinentry-curses
```

This works on Linux but fails on macOS.

However, if `gpg-agent.conf` either does not exist, or exists but does
not contain **any** active `pinentry-program` directives, then my
experimentation shows current OS releases behave as follows:

* Linux invokes:

	- `/usr/bin/pinentry-gnome3` (if a Desktop environment is available)
	- `/usr/bin/pinentry-curses` (otherwise)

	I have tested Debian, Ubuntu and Raspberry Pi OS.

* macOS invokes:

	- `/usr/local/bin/pinentry-curses` (Intel)
	- `/opt/homebrew/bin/pinentry-curses` (Apple)

	Those are true when `gnupg` has been installed by HomeBrew. I can't
	test either MacPorts or MacGPG2 directly but research suggests:

	- `/opt/local/bin/pinentry` (MacPorts)
	- `/usr/local/MacGPG2/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac` (MacGPG2)

Signed-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>
2025-06-18 14:36:24 +10:00
drduh
48fe57a24f increment stdout dates, cite ed25519 2025-06-17 18:57:42 -07:00
drduh
76d557b0f6 set individual key types default to ed25519 for auth 2025-06-15 14:08:13 -07:00
drduh
e974dbb95c create scripts dir before creating keygrips 2025-06-15 13:36:09 -07:00
drduh
d446832705 explicit note on ed25519 auth subkeys to fix #507 2025-06-15 13:29:08 -07:00
drduh
d8ad5c469b split subkey gen command, note ed25519 auth 2025-06-15 13:22:45 -07:00
drduh
428d845214 Merge pull request #502 from mattborja/guide-secure-environment
Creating a Secure Environment for GPG in Alpine Linux
2025-06-15 20:05:33 +00:00
drduh
8c0a752934 implement fail function 2025-06-15 13:01:56 -07:00
drduh
ca81deff35 Merge pull request #508 from kurtmckee/fix-broken-link
Fix a broken link
2025-06-07 21:03:30 +00:00
Kurt McKee
f5846c9cdc Fix a broken link 2025-06-02 14:08:32 -05:00
Matt Borja
bc9a7a8954 Update verbiage for read flow (“obtained in advance”) 2025-05-23 02:49:49 +00:00
Matt Borja
7e3f6f7647 Add missing closing parenthesis 2025-05-23 02:47:52 +00:00
Matt Borja
454cf8e0bf Include recommendation for sourcing offline copy of gpg.conf to avert needing an Internet connection in post 2025-05-23 02:47:09 +00:00
Matt Borja
fbc9d4f517 - Use dedicated section headings for Abstract and Disclaimer
- Include MIT disclaimer and add copyright
- Clarify use of tightly coupled process intended for offline package installation (bootable images already presumed to be verified through via external documentation)
- Specify appropriate use of secure imaging host (imaging purposes only)
- Provide link to Tails installation guide
- Cleanup verbiage throughout using more direct procedural language
- Rearrange paragraphs as needed to address disparities in logical flow of procedures, as in C/CD Considerations
- Clarify hardware requirements for devices elected for air-gap use (e.g. SD card)
- Reiterate verification requirements for Alpine Linux, citing both official sources and additional evidence sources
- Add callout (3b) to fetch additional packages required for offlnie work in the air-gapped environment and thus rename gpg-bundle-* to airgap-bundle-*
- Add explicit step to visually inspect and note SHA256 checksum of air-gap bundle before continuing (required for later verification)
- Parameterize device paths when referencing use of removable storage medium
-  Note alternate use of repeating section 1.2.1 over current SD card (used for offline package retrieval)
- Cleanup additional post-installation setup tasks introduced elsewhere in, else considered outside the scope of this document
- Demonstrate use of `&&` for requiring SHA256 to be valid before allowing air-gap bundle to be extracted and installed
- Include sample command for listing key certifications during GPG environment verification (--list-sigs)
2025-05-19 17:43:14 +00:00
Matt Borja
67e63f5e40 Cleanup Stage 1 introductory paragraph and rearrange "clean plate" analogy for logical flow 2025-05-19 07:46:47 +00:00
Matt Borja
8536df9cfc Rework Purpose section as Abstract and cleanup
Align heading for procedure verbiage: Establish a Secure Imaging Host
2025-05-19 07:37:10 +00:00
Matt Borja
dc2221e7de Add notes for restarting gpg-agent if connection to HSM is lost between $GNUPGHOME directories
Cleanup heading with procedure verbiage:
- Install Offline Packages for GnuPG
- Verify the Environment
2025-05-19 02:29:37 +00:00
Matt Borja
0d709dd9ba Update instructions for installing offline packages from removable storage after booting into the secure environment 2025-05-19 02:24:13 +00:00
Matt Borja
bd96779276 Cleanup remaining extraneous sections
- 1.3 Building the Secure Environment

Cleanup CI/CD Considerations paragraph
2025-05-19 02:18:47 +00:00
Matt Borja
8f31080af9 Merge branch 'guide-secenv' into guide-secure-environment to sign last commit with current key only recognized by GitHub due to email field. 2025-05-19 02:09:11 +00:00
Matt Borja
1a7bc2ccf6 Rework section introductory paragraphs for readability
Begin reworking user stories as more procedural for brevity and procedural specificity (clarity)
- Establishing a Secure Image Host
- Use Tails OS as an Intermediary
- Use the target OS to download packages
- Acquire the target image
- Boot the target image and download OS packages

The "clean plate" analogy is becoming more prominent (recurring), potentially indicating an accessible codename suitable for this document.
2025-05-19 02:08:14 +00:00
Matt Borja
acdbd14f8d Rework section introductory paragraphs for readability
Begin reworking user stories as more procedural for brevity and procedural specificity (clarity)
- Establishing a Secure Image Host
- Use Tails OS as an Intermediary
- Use the target OS to download packages
- Acquire the target image
- Boot the target image and download OS packages

The "clean plate" analogy is becoming more prominent (recurring), potentially indicating an accessible codename suitable for this document.
2025-05-19 01:58:01 +00:00
Matt Borja
3cc423037b Fix minor spelling/grammar issues 2025-05-14 08:11:40 +00:00
Matt Borja
ae6cac57f1 Update headings:
- Fix heading level for Stage 3
- Assign sub-headings

Link "working with GPG" to existing guide
2025-05-14 08:04:29 +00:00
Matt Borja
c0690e1c4c Import and cleanup notes for distribution 2025-05-14 07:51:20 +00:00
drduh
ece9752967 Merge pull request #501 from drduh/wip-09may25
script key generation
2025-05-11 23:56:11 +00:00
drduh
7473d2e0d8 reuse key list for id/fp 2025-05-10 17:59:19 -07:00
drduh
04dbdf35c3 label each step 2025-05-10 17:47:40 -07:00
drduh
d66ac5381f delint and print id strings 2025-05-10 17:25:26 -07:00
drduh
f48c9fa3ee finish by printing certify and encrypt passphrases 2025-05-10 17:08:04 -07:00