diff --git a/NEWS b/NEWS index 0807fe4e..ffe70e7b 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ Noteworthy changes in version 1.17.2 (unreleased) * cpp, qt: Support revocation of own OpenPGP keys. [#5904] + * cpp: Support setting the primary user ID. [#5938] + * Interface changes relative to the 1.17.1 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GPGME_KEYLIST_MODE_FORCE_EXTERN NEW. @@ -17,6 +19,8 @@ Noteworthy changes in version 1.17.2 (unreleased) cpp: KeyListMode::ForceExtern NEW. cpp: KeyListMode::LocateExternal NEW. cpp: KeyListMode::KeyListModeMask NEW. + cpp: Context::setPrimaryUid NEW. + cpp: Context::startSetPrimaryUid NEW. qt: RevokeKeyJob NEW. qt: Protocol::revokeKeyJob NEW. diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 61b3e0e2..dba958cf 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -1641,6 +1641,16 @@ Error Context::startRevUid(const Key &k, const char *userid) k.impl(), userid, 0)); } +Error Context::setPrimaryUid(const Key &k, const char *userid) +{ + return Error(d->lasterr = gpgme_op_set_uid_flag(d->ctx, k.impl(), userid, "primary", nullptr)); +} + +Error Context::startSetPrimaryUid(const Key &k, const char *userid) +{ + return Error(d->lasterr = gpgme_op_set_uid_flag_start(d->ctx, k.impl(), userid, "primary", nullptr)); +} + Error Context::createSubkey(const Key &k, const char *algo, unsigned long reserved, unsigned long expires, diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h index 405d54ea..7bd1b03d 100644 --- a/lang/cpp/src/context.h +++ b/lang/cpp/src/context.h @@ -295,6 +295,9 @@ public: Error revUid(const Key &key, const char *userid); Error startRevUid(const Key &key, const char *userid); + Error setPrimaryUid(const Key &key, const char *userid); + Error startSetPrimaryUid(const Key &key, const char *userid); + Error createSubkey(const Key &key, const char *algo, unsigned long reserved = 0, unsigned long expires = 0,