gpgme/lang/python/docs/dita/howto/part04/clear-signing.dita
Ben McGinnes f0063afa71 docs: python bindings HOWTO - DITA XML version
* Due to the org-babel bug which breaks Python source code examples
  beyond the most simple snippets, ported the HOWTO to a source format
  which I *know* for sure won't break it.
* Details of the org-mode bug is in https://dev.gnupg.org/T3977
* DITA project uses DITA-OT 2.x (2.4 or 2.5, IIRC) with support for DITA 1.3.
* source files were written with oXygenXML Editor 20.0, hence the
  oXygenXML project file in the directory; however only the .ditamap
  and .dita files are required to generate any output with the
  DITA-OT.

Signed-off-by: Ben McGinnes <ben@adversary.org>
2018-05-15 13:13:16 +10:00

43 lines
1.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita>
<topic id="topic_ydy_5qz_5db">
<title>Clear Signatures</title>
<body>
<p>Though PGP/in-line messages are no longer encouraged in favour of PGP/MIME, there is still
sometimes value in utilising in-line signatures. This is where clear-signed messages or text
is of value.</p>
<p>
<codeblock id="clrsig-1" outputclass="language-python">import gpg
text0 = """Declaration of ... something.
"""
text = text0.encode()
c = gpg.Context()
signed_data, result = c.sign(text, mode=gpg.constants.sig.mode.CLEAR)
with open("/path/to/statement.txt.asc", "w") as afile:
afile.write(signed_data.decode())
</codeblock>
</p>
<p>In spite of the appearance of a clear-signed message, the data handled by GPGME in signing
it must still be byte literals.</p>
<p>
<codeblock id="clrsig-2" outputclass="language-python">import gpg
with open("/path/to/statement.txt", "rb") as tfile:
text = tfile.read()
c = gpg.Context()
signed_data, result = c.sign(text, mode=gpg.constants.sig.mode.CLEAR)
with open("/path/to/statement.txt.asc", "wb") as afile:
afile.write(signed_data)
</codeblock>
</p>
</body>
</topic>
</dita>