[openpgp] encrypting textual data with sop [was: Re: text vs. binary in an OpenPGP "Signed Message" ]

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Sat, 22 February 2025 23:32 UTC

Return-Path: <dkg@fifthhorseman.net>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 32D89C1D4A7B for <openpgp@ietfa.amsl.com>; Sat, 22 Feb 2025 15:32:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b="M8HRvzf1"; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b="kqRJJKMn"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n8Izxzxaco01 for <openpgp@ietfa.amsl.com>; Sat, 22 Feb 2025 15:32:20 -0800 (PST)
Received: from che.mayfirst.org (che.mayfirst.org [162.247.75.118]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9976FC1D4A8D for <openpgp@ietf.org>; Sat, 22 Feb 2025 15:32:20 -0800 (PST)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1740267139; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=92DUKB7GyjmtapjxBTec85QxQO4mN1Rit5MNSYBNy6A=; b=M8HRvzf1iI4hgjQ856fPU6TN09Ek4gl8X61XKT/R7gc0raNNlbrQO+kUmxECSv4kTrPcE eb+ywcMHzAxOWeyAg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1740267139; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=92DUKB7GyjmtapjxBTec85QxQO4mN1Rit5MNSYBNy6A=; b=kqRJJKMn4Ir8xjdaon17HgxBAhrPnhx8CBVEeuoLqc3EjLJ31HuG1kOMWJcDP8/B6D74t C70n263AkQoqUBz4LzK5SH660/kmiAoKefn4qhbjWbfrBq91Cg/TnJ7kohP2q6nFtPg92qM lsomp4iMji8GIuKsRxOM9kxLZwmsc4yI/tKpHsxcXxIOGsGIGdQA9ojyv6IZE7wgU+Mv2HM 2DY2CEUvwALpyZbsOuA5ti6tzdNcnl8DTsGf3Acf6hVd1aqxZkXISXX7azbSDDuEb1T6G+p oGp03wMRfACtpoawiA9F2wrtHLHWZVpHAdgTOVZCtie7e3g26jcD/rR1a29g==
Received: from fifthhorseman.net (pool-108-34-247-44.prvdri.fios.verizon.net [108.34.247.44]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id D973BF9B2; Sat, 22 Feb 2025 18:32:18 -0500 (EST)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 7A7C613F69B; Sat, 22 Feb 2025 18:32:05 -0500 (EST)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Daniel Huigens <d.huigens@protonmail.com>
In-Reply-To: <lYp-4gNsTczU7F5uSButMLfg0LlynU_6FysWBbDk2n5ZHwVBbiIsrzlITQtn1sHC9tfpoVGvBOM5VfB-q1o82n4fZRr27HWh_8UKVl_YE0s=@protonmail.com>
References: <871pvq4yhe.fsf@fifthhorseman.net> <lYp-4gNsTczU7F5uSButMLfg0LlynU_6FysWBbDk2n5ZHwVBbiIsrzlITQtn1sHC9tfpoVGvBOM5VfB-q1o82n4fZRr27HWh_8UKVl_YE0s=@protonmail.com>
Autocrypt: addr=dkg@fifthhorseman.net; prefer-encrypt=mutual; keydata= xjMEZXEJyxYJKwYBBAHaRw8BAQdA5BpbW0bpl5qCng/RiqwhQINrplDMSS5JsO/YO+5Zi7HNFzxk a2dAZmlmdGhob3JzZW1hbi5uZXQ+wsARBBMWCgB5AwsJB0cUAAAAAAAeACBzYWx0QG5vdGF0aW9u cy5zZXF1b2lhLXBncC5vcmcS78JIJ7JbALqPiKEmva7/Pp16WwXWm9hbe5+B/UvnfwMVCggCmwEC HgEWIQTUdwQMcMIValwphUm7fpEBSV5r9wUCZadfkAUJBdnwRQAKCRC7fpEBSV5r9yNXAP442N0c zvisBroQSKKpo+OWm2JpnEJWoVheeJvoRtkBGQEA+edHylby8IGcNccq7rmM2rAXdofvrU1o6qow V+mmDwbOMwRnio4OFgkrBgEEAdpHDwEBB0Cw9HzJFl9lZn3UBaUqSMSgxjcdbd0MwNVcGZ8t8wdN EcLAvwQYFgoBMQWCZ4qODgkQu36RAUlea/dHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9p YS1wZ3Aub3JnhcN+tn41cAg01Kk56zcAfpdsh8j98PDe00mqKPfFvaYCmwK+oAQZFgoAbwWCZ4qO DgkQeAuFTtnCtJZHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnxsD8Sk5P Wgx8c/Zseo6OlCjyDC+Ogm17gTaUUIpxjWYWIQRjrBGOWy5dZsiKhad4C4VO2cK0lgAAdcQA/1RG dmrmvVxkBY2qNPjtERNwPga8Pf4IdlenrZ03NXM4AQC+TDHMpD7d5obEvUy8GYI3oThzYItPP8vv ChY+wbaIBRYhBNR3BAxwwhVqXCmFSbt+kQFJXmv3AAAKbgD+K1MZXnRKPdmA8DgNysyGRZY8cSVH HQcC7ZAAtV3i2+wA/0CyOYrbFYbyTRALgoERR07OHFoP+fJopQLMNQARVUELzjgEZ4qN+RIKKwYB BAGXVQEFAQEHQDTGlR+Qmn334e+bPqvojJVdFsiBf0leAAHP+ESqop8NAwEIB8LAAAQYFgoAcgWC Z4qN+QkQu36RAUlea/dHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnA5Lw b3wOOcoodImuVNw4PYq1U65FDC1Q2JMFIcJXqF0CmwwWIQTUdwQMcMIValwphUm7fpEBSV5r9wAA 6egA/j3QANSmogZ5VTF5KlI+BBye9ud/w9j7RLcCHU6u8AA1AQC3FGaNuv+uWOSa+eeEoI/aZrGd X5el8b/m6aXDDxDjDg==
Date: Sat, 22 Feb 2025 18:32:04 -0500
Message-ID: <87tt8l36a3.fsf@fifthhorseman.net>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Message-ID-Hash: 4CQJRFRJ755VOPJRHCV2624WMAG4AZII
X-Message-ID-Hash: 4CQJRFRJ755VOPJRHCV2624WMAG4AZII
X-MailFrom: dkg@fifthhorseman.net
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-openpgp.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: openpgp@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [openpgp] encrypting textual data with sop [was: Re: text vs. binary in an OpenPGP "Signed Message" ]
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/LueDXfBKeyAh2IBAT9AGvq2xAxo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Owner: <mailto:openpgp-owner@ietf.org>
List-Post: <mailto:openpgp@ietf.org>
List-Subscribe: <mailto:openpgp-join@ietf.org>
List-Unsubscribe: <mailto:openpgp-leave@ietf.org>

Thanks for the response, Daniel--

I'm hoping the rest of this thread can ignore the additional complexity
of the encryption wrapping on the thread more generally, but i just
wanted to address this point.

On Sat 2025-02-22 14:52:52 +0000, Daniel Huigens wrote:
> Unfortunately they don't tell us much about GnuPG's behavior since the
> SOP layer doesn't seem to support inline-verify nor text signatures
> inside encrypted data, weirdly enough.

`sop encrypt` has an option `--as={text|binary}`, which should apply in
conjunction with `--sign-with=KEYS`.

https://www.ietf.org/archive/id/draft-dkg-openpgp-stateless-cli-13.html#section-5.4.3-7
says:

>>> If --as is set to binary, then --sign-with will sign as a binary
>>> document (OpenPGP signature type 0x00).
>>> 
>>> If --as is set to text, then --sign-with will sign as a canonical
>>> text document (OpenPGP signature type 0x01). In this case, if the
>>> input DATA is not valid UTF-8 (Section 11.7), sop encrypt fails with
>>> EXPECTED_TEXT.

So producing text signatures inside encrypted data should be supported
by any sop implementation.

   --dkg