23 offsetof(options_t, encrypt_enabled),
24 &default_encrypt_enabled_value,
26 "Enable end-to-end encryption (requires the other party to be encrypted as well).",
35 OPTION_MODE_CLIENT | OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY | OPTION_MODE_DISCOVERY_SVC,
41 offsetof(options_t, encrypt_key),
44 "Server identity key (SSH Ed25519 or GPG key file, gpg:FINGERPRINT, github:USER[.gpg], gitlab:USER[.gpg], or "
45 "HTTPS URL like https://example.com/key.pub or .gpg).",
54 OPTION_MODE_CLIENT | OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY | OPTION_MODE_DISCOVERY_SVC,
60 offsetof(options_t, password),
63 "Shared password for authentication (8-256 characters).",
67 "ASCII_CHAT_PASSWORD",
72 OPTION_MODE_CLIENT | OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY | OPTION_MODE_DISCOVERY_SVC,
78 offsetof(options_t, no_encrypt),
79 &default_no_encrypt_value,
81 "Disable encryption (requires the other party to be unencrypted as well).",
85 "ASCII_CHAT_NO_ENCRYPT",
90 OPTION_MODE_CLIENT | OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY | OPTION_MODE_DISCOVERY_SVC,
96 offsetof(options_t, server_key),
99 "Expected server public key for verification. Supports: raw base64 public key (AAAAC3Nz...), "
100 "SSH/GPG key files, gpg:FINGERPRINT, github:USER[.gpg], gitlab:USER[.gpg], "
101 "or HTTP(S) URLs like https://github.com/zfogg.[keys|gpg].",
105 "ASCII_CHAT_SERVER_KEY",
110 OPTION_MODE_CLIENT | OPTION_MODE_DISCOVERY,
116 offsetof(options_t, client_keys),
119 "Allowed client keys (comma-separated). Supports: raw base64 public keys (AAAAC3Nz...), "
120 "file paths with one key per line, github:USER[.gpg], gitlab:USER[.gpg], gpg:KEYID, "
121 "or HTTP(S) URLs like https://github.com/zfogg.[keys|gpg].",
125 "ASCII_CHAT_CLIENT_KEYS",
130 OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY | OPTION_MODE_DISCOVERY_SVC,
133 {
"discovery-insecure",
136 offsetof(options_t, discovery_insecure),
137 &default_discovery_insecure_value,
139 "Skip server key verification (MITM-vulnerable, requires explicit opt-in).",
143 "ASCII_CHAT_DISCOVERY_INSECURE",
148 OPTION_MODE_CLIENT | OPTION_MODE_DISCOVERY,
151 {
"discovery-service-key",
154 offsetof(options_t, discovery_service_key),
157 "Discovery server public key for verification. Supports: raw base64 public key (AAAAC3Nz...), "
158 "SSH/GPG key files, gpg:FINGERPRINT, github:USER[.gpg], gitlab:USER[.gpg], "
159 "or HTTP(S) URLs like https://github.com/zfogg.[keys|gpg].",
163 "ASCII_CHAT_DISCOVERY_SERVER_KEY",
168 OPTION_MODE_CLIENT | OPTION_MODE_SERVER | OPTION_MODE_DISCOVERY,
171 {
"require-server-identity",
174 offsetof(options_t, require_server_identity),
177 "Require servers to provide signed Ed25519 identity.",
181 "ASCII_CHAT_REQUIRE_SERVER_IDENTITY",
186 OPTION_MODE_DISCOVERY_SVC,
189 {
"require-client-identity",
192 offsetof(options_t, require_client_identity),
195 "Require clients to provide signed Ed25519 identity.",
199 "ASCII_CHAT_REQUIRE_CLIENT_IDENTITY",
204 OPTION_MODE_DISCOVERY_SVC,
208 REGISTRY_TERMINATOR()};