<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/lang/cpp/src, branch gpgme-1.24-branch</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.24-branch</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.24-branch'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2025-05-05T14:14:55Z</updated>
<entry>
<title>cpp: Ensure correct expiration time on 32-bit arch with 64-bit time_t</title>
<updated>2025-05-05T14:14:55Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-05-05T14:14:55Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=f23cef6f66a44c5c1cc8717f74b658d14fde04e5'/>
<id>urn:sha1:f23cef6f66a44c5c1cc8717f74b658d14fde04e5</id>
<content type='text'>
* lang/cpp/src/key.cpp (Subkey::expirationTime): Cast away the
signedness of _gpgme_subkey.expires before casting to time_t.
--

_gpgme_subkey.expires stores the expiration as `long int` although the
expiration is always an unsigned value. Casting the value to unsigned
long int before casting it to time_t ensures that we get the correct
expiration value for 64-bit time_t even on 32-bit systems. With signed
32-bit time_t we still get a negative value as before.

GnuPG-bug-id: 7627

</content>
</entry>
<entry>
<title>cpp: Add missing transition, remove two ignored (and wrong) transitions</title>
<updated>2025-04-15T07:20:25Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-04-15T07:15:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e327305b9669107235ebe5e1e929988c1adefce9'/>
<id>urn:sha1:e327305b9669107235ebe5e1e929988c1adefce9</id>
<content type='text'>
* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable): Remove two
transitions.  Add one transition.

* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable)
&lt;sign_uid.dupe_okay&gt;: Add one more transition.
--

This adds a missing transition for the CONFIRM2 state which ensures
that the certification is properly completed in case two confirmations
were requested. And it removes two useless (and wrong) transitions
which are overwritten by two later correct transitions in the map.

GnuPG-bug-id: 7600
This is gpgmepp commit 5b77f4072d03342b8719bbe93fc77641fffb476a

The second patch fixed a bug seen before we could test Ingo's
patch.  - wk
</content>
</entry>
<entry>
<title>cpp: Validate the transition map</title>
<updated>2025-04-11T08:28:20Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-04-11T08:28:20Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=64bb704a25ea1384666d5f0d5202363f4271d948'/>
<id>urn:sha1:64bb704a25ea1384666d5f0d5202363f4271d948</id>
<content type='text'>
* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable): Assert that
all transitions go from one state to a different state.
--

The state machine gets stuck if a transition doesn't change the state.
Make sure that this cannot happen again by mistake.

GnuPG-bug-id: 7600
Taken from gpgmepp commit 6f2e91d4d25afa6934ceaf1563a4d826a904d644
</content>
</entry>
<entry>
<title>cpp: Ensure that all transitions go from one state to a different state</title>
<updated>2025-04-11T08:26:31Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-04-11T08:26:31Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=a4945675ece2c1e915fc49298adfd927737ede3d'/>
<id>urn:sha1:a4945675ece2c1e915fc49298adfd927737ede3d</id>
<content type='text'>
* src/gpgsignkeyeditinteractor.cpp (makeTable): Replace transitions from
CONFIRM to CONFIRM with transitions from CONFIRM to CONFIRM2 and vice
versa. Add transitions from CONFIRM2 to some other state for all
transitions from CONFIRM to some other state.
--

The state machine gets stuck if a transition doesn't change the state
but an action is required. To avoid this situation the CONFIRM2 state
was introduced, but it was not used correctly.

GnuPG-bug-id: 7600

Taken from gpgmepp commit aee2b30482406e677dbddf1a68b2a11a5dc70adf
</content>
</entry>
<entry>
<title>cpp: Add Kyber algorithm</title>
<updated>2024-11-14T15:22:36Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-11-14T14:10:47Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=56718f8d204f8a5895feb1a99c4b8ecd42b78010'/>
<id>urn:sha1:56718f8d204f8a5895feb1a99c4b8ecd42b78010</id>
<content type='text'>
* lang/cpp/src/key.h (enum Subkey::PubkeyAlgo): Add AlgoKyber with
same value as GPGME_PK_KYBER.
--

GnuPG-bug-id: 7397
</content>
</entry>
<entry>
<title>cpp: Put attributes before declarations</title>
<updated>2024-10-23T08:12:08Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-10-23T08:10:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c4b39a77950b3b737de06eca044b35a845fc6299'/>
<id>urn:sha1:c4b39a77950b3b737de06eca044b35a845fc6299</id>
<content type='text'>
* lang/cpp/src/key.h (UserID::Signature::Notation): Move
GPGMEPP_DEPRECATED before the whole typedef declaration.
* lang/cpp/src/verificationresult.h (Signature::Notation): Ditto.
--
</content>
</entry>
<entry>
<title>cpp: Add/change some includes</title>
<updated>2024-10-23T08:01:07Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-10-23T08:01:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=bff4b847fc6361c6027afc1e8c78aa7580e2a27c'/>
<id>urn:sha1:bff4b847fc6361c6027afc1e8c78aa7580e2a27c</id>
<content type='text'>
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h,
lang/cpp/src/gpgrevokekeyeditinteractor.h: Include &lt;string&gt;.
* lang/cpp/src/key.h: Include &lt;ctime&gt; instead of &lt;sys/time.h&gt;.
--
</content>
</entry>
<entry>
<title>cpp: Add support for new flag fields beta_compliance</title>
<updated>2024-10-21T12:47:10Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-10-21T12:47:10Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=2a0595906970505debf64e166b9a35cccbf1b424'/>
<id>urn:sha1:2a0595906970505debf64e166b9a35cccbf1b424</id>
<content type='text'>
* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h
(class DecryptionResult): Add method isBetaCompliance.
* lang/cpp/src/decryptionresult.cpp (operator&lt;&lt;): Add new flag.
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): Add method
isBetaCompliance.
(class Subkey): Add method isBetaCompliance.
* lang/cpp/src/key.cpp:
(Key::isDeVs): Remove duplicate check of is_de_vs of first subkey.
(operator&lt;&lt;): Add new flag.
* lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h
(class Signature): Add method isBetaCompliance.
* lang/cpp/src/verificationresult.cpp (operator&lt;&lt;): Add new flag.
--

GnuPG-bug-id: 7346
</content>
</entry>
<entry>
<title>cpp: Add pkgconfig file for gpgmepp</title>
<updated>2024-08-29T11:51:38Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-05-27T16:03:48Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=569348ee84068ade5e05902dd9d670a1a30c7ca1'/>
<id>urn:sha1:569348ee84068ade5e05902dd9d670a1a30c7ca1</id>
<content type='text'>
* configure.ac: Add substitutions GPGMEPP_PKGCONFIG_LIBS,
GPGMEPP_PKGCONFIG_CFLAGS, GPGMEPP_PKGCONFIG_HOST. Apply them. Configure
gpgmepp.pc file.
* lang/cpp/src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
(EXTRA_DIST): Add gpgmepp.pc.in.
* lang/cpp/src/gpgmepp.pc.in: New.
--

This pkgconfig file will be used, at least temporarily, by qgpgme
to find gpgmepp, but it's also useful in general for projects that
don't use cmake.

GnuPG-bug-id: 7262
</content>
</entry>
<entry>
<title>cpp: Go with default answer on unknown question by key edit interface</title>
<updated>2024-08-28T14:32:18Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-08-28T14:32:18Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=7579c40124c9b287bb67e974bda46e879e1a1ab1'/>
<id>urn:sha1:7579c40124c9b287bb67e974bda46e879e1a1ab1</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Send empty string to edit interface if General Error occurred.
--

A General Error is usually returned by the nextState function of the
concrete EditInteractor subclasses if gpg asks an unexpected question
which isn't handled by the edit interactor's state machine. In this
case, it's usually safe to go with the default answer. This makes the
edit interactors much more robust.

GnuPG-bug-id: 7274
</content>
</entry>
</feed>
