cpp: Support new key capability flags

* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
hasCertify, hasSign, hasEncrypt, hasAuthenticate.
--

GnuPG-bug-id: 6748
This commit is contained in:
Ingo Klöcker 2023-10-05 15:27:52 +02:00
parent 0132a1089f
commit a9e5a25b56
No known key found for this signature in database
GPG Key ID: F5A5D1692277A1E9
3 changed files with 41 additions and 0 deletions

4
NEWS
View File

@ -16,6 +16,10 @@ Noteworthy changes in version 1.23.0 (unreleased)
gpgme_key_t EXTENDED: New field has_sign. gpgme_key_t EXTENDED: New field has_sign.
gpgme_key_t EXTENDED: New field has_certify. gpgme_key_t EXTENDED: New field has_certify.
gpgme_key_t EXTENDED: New field has_authenticate. gpgme_key_t EXTENDED: New field has_authenticate.
cpp: Key::canCertify NEW.
cpp: Key::canSign NEW.
cpp: Key::canEncrypt NEW.
cpp: Key::canAuthenticate NEW.
qt: Protocol::wkdRefreshJob NEW. qt: Protocol::wkdRefreshJob NEW.
qt: WKDRefreshJob NEW. qt: WKDRefreshJob NEW.

View File

@ -247,6 +247,26 @@ bool Key::isDeVs() const
return true; return true;
} }
bool Key::hasCertify() const
{
return key && key->has_certify;
}
bool Key::hasSign() const
{
return key && key->has_sign;
}
bool Key::hasEncrypt() const
{
return key && key->has_encrypt;
}
bool Key::hasAuthenticate() const
{
return key && key->has_authenticate;
}
const char *Key::issuerSerial() const const char *Key::issuerSerial() const
{ {
return key ? key->issuer_serial : nullptr ; return key ? key->issuer_serial : nullptr ;

View File

@ -109,14 +109,31 @@ public:
* isDisabled || isInvalid */ * isDisabled || isInvalid */
bool isBad() const; bool isBad() const;
/** Returns true, if the key can be used for encryption (i.e. it's not bad
* and has an encryption subkey) or if the primary subkey can encrypt. */
bool canEncrypt() const; bool canEncrypt() const;
/** Returns true, if the key can be used for signing (i.e. it's not bad
* and has a signing subkey) or if the primary subkey can sign. */
bool canSign() const; bool canSign() const;
GPGMEPP_DEPRECATED bool canReallySign() const; GPGMEPP_DEPRECATED bool canReallySign() const;
/** Returns true, if the key can be used for certification (i.e. it's not bad
* and has a certification subkey) or if the primary subkey can certify. */
bool canCertify() const; bool canCertify() const;
/** Returns true, if the key can be used for authentication (i.e. it's not bad
* and has a authentication subkey) or if the primary subkey can authenticate. */
bool canAuthenticate() const; bool canAuthenticate() const;
bool isQualified() const; bool isQualified() const;
bool isDeVs() const; bool isDeVs() const;
/** Returns true, if the key has a certification subkey. */
bool hasCertify() const;
/** Returns true, if the key has a signing subkey. */
bool hasSign() const;
/** Returns true, if the key has an encryption subkey. */
bool hasEncrypt() const;
/** Returns true, if the key has an authentication subkey. */
bool hasAuthenticate() const;
bool hasSecret() const; bool hasSecret() const;
GPGMEPP_DEPRECATED bool isSecret() const GPGMEPP_DEPRECATED bool isSecret() const
{ {