aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2024-10-21 12:47:10 +0000
committerIngo Klöcker <[email protected]>2024-10-21 12:47:10 +0000
commit2a0595906970505debf64e166b9a35cccbf1b424 (patch)
tree9253f314d839a7e1d06a7c7db3ff7db224e2425c
parentdoc: Fix, update, add API documentation (diff)
downloadgpgme-2a0595906970505debf64e166b9a35cccbf1b424.tar.gz
gpgme-2a0595906970505debf64e166b9a35cccbf1b424.zip
cpp: Add support for new flag fields beta_compliance
* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h (class DecryptionResult): Add method isBetaCompliance. * lang/cpp/src/decryptionresult.cpp (operator<<): 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<<): Add new flag. * lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h (class Signature): Add method isBetaCompliance. * lang/cpp/src/verificationresult.cpp (operator<<): Add new flag. -- GnuPG-bug-id: 7346
-rw-r--r--lang/cpp/src/decryptionresult.cpp10
-rw-r--r--lang/cpp/src/decryptionresult.h1
-rw-r--r--lang/cpp/src/key.cpp22
-rw-r--r--lang/cpp/src/key.h2
-rw-r--r--lang/cpp/src/verificationresult.cpp8
-rw-r--r--lang/cpp/src/verificationresult.h1
6 files changed, 38 insertions, 6 deletions
diff --git a/lang/cpp/src/decryptionresult.cpp b/lang/cpp/src/decryptionresult.cpp
index ad1d1cb6..dd515015 100644
--- a/lang/cpp/src/decryptionresult.cpp
+++ b/lang/cpp/src/decryptionresult.cpp
@@ -122,6 +122,11 @@ bool GpgME::DecryptionResult::isDeVs() const
return d && d->res.is_de_vs;
}
+bool GpgME::DecryptionResult::isBetaCompliance() const
+{
+ return d && d->res.beta_compliance;
+}
+
bool GpgME::DecryptionResult::isMime() const
{
return d && d->res.is_mime;
@@ -257,8 +262,9 @@ std::ostream &GpgME::operator<<(std::ostream &os, const DecryptionResult &result
<< "\n fileName: " << protect(result.fileName())
<< "\n unsupportedAlgorithm: " << protect(result.unsupportedAlgorithm())
<< "\n isWrongKeyUsage: " << result.isWrongKeyUsage()
- << "\n isDeVs " << result.isDeVs()
- << "\n legacyCipherNoMDC " << result.isLegacyCipherNoMDC()
+ << "\n isDeVs: " << result.isDeVs()
+ << "\n isBetaCompliance: " << result.isBetaCompliance()
+ << "\n legacyCipherNoMDC: " << result.isLegacyCipherNoMDC()
<< "\n symkeyAlgo: " << protect(result.symkeyAlgo())
<< "\n recipients:\n";
const std::vector<DecryptionResult::Recipient> recipients = result.recipients();
diff --git a/lang/cpp/src/decryptionresult.h b/lang/cpp/src/decryptionresult.h
index 316d0413..3a87e181 100644
--- a/lang/cpp/src/decryptionresult.h
+++ b/lang/cpp/src/decryptionresult.h
@@ -75,6 +75,7 @@ public:
}
bool isWrongKeyUsage() const;
bool isDeVs() const;
+ bool isBetaCompliance() const;
bool isMime() const;
const char *fileName() const;
diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp
index 2465cf06..42046aa0 100644
--- a/lang/cpp/src/key.cpp
+++ b/lang/cpp/src/key.cpp
@@ -264,14 +264,24 @@ bool Key::isQualified() const
bool Key::isDeVs() const
{
- if (!key) {
+ if (!key || !key->subkeys) {
return false;
}
- if (!key->subkeys || !key->subkeys->is_de_vs) {
+ for (gpgme_sub_key_t subkey = key->subkeys ; subkey ; subkey = subkey->next) {
+ if (!subkey->is_de_vs) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool Key::isBetaCompliance() const
+{
+ if (!key || !key->subkeys) {
return false;
}
for (gpgme_sub_key_t subkey = key->subkeys ; subkey ; subkey = subkey->next) {
- if (!subkey->is_de_vs) {
+ if (!subkey->beta_compliance) {
return false;
}
}
@@ -586,6 +596,11 @@ bool Subkey::isDeVs() const
return subkey && subkey->is_de_vs;
}
+bool Subkey::isBetaCompliance() const
+{
+ return subkey && subkey->beta_compliance;
+}
+
bool Subkey::isCardKey() const
{
return subkey && subkey->is_cardkey;
@@ -1390,6 +1405,7 @@ std::ostream &operator<<(std::ostream &os, const Subkey &subkey)
<< "\n isGroupOwned: " << subkey.isGroupOwned()
<< "\n isQualified: " << subkey.isQualified()
<< "\n isDeVs: " << subkey.isDeVs()
+ << "\n isBetaCompliance:" << subkey.isBetaCompliance()
<< "\n isCardKey: " << subkey.isCardKey()
<< "\n cardSerialNumber:" << protect(subkey.cardSerialNumber());
}
diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h
index a1648884..215eb9ff 100644
--- a/lang/cpp/src/key.h
+++ b/lang/cpp/src/key.h
@@ -129,6 +129,7 @@ public:
bool canAuthenticate() const;
bool isQualified() const;
bool isDeVs() const;
+ bool isBetaCompliance() const;
/** Returns true, if the key has a certification subkey. */
bool hasCertify() const;
@@ -289,6 +290,7 @@ public:
bool isGroupOwned() const;
bool isQualified() const;
bool isDeVs() const;
+ bool isBetaCompliance() const;
bool isCardKey() const;
bool isSecret() const;
diff --git a/lang/cpp/src/verificationresult.cpp b/lang/cpp/src/verificationresult.cpp
index 1c657721..0299fcec 100644
--- a/lang/cpp/src/verificationresult.cpp
+++ b/lang/cpp/src/verificationresult.cpp
@@ -283,6 +283,11 @@ bool GpgME::Signature::isDeVs() const
return !isNull() && d->sigs[idx]->is_de_vs;
}
+bool GpgME::Signature::isBetaCompliance() const
+{
+ return !isNull() && d->sigs[idx]->beta_compliance;
+}
+
GpgME::Signature::PKAStatus GpgME::Signature::pkaStatus() const
{
if (!isNull()) {
@@ -600,7 +605,8 @@ std::ostream &GpgME::operator<<(std::ostream &os, const Signature &sig)
<< "\n publicKeyAlgorithm: " << protect(sig.publicKeyAlgorithmAsString())
<< "\n hashAlgorithm: " << protect(sig.hashAlgorithmAsString())
<< "\n policyURL: " << protect(sig.policyURL())
- << "\n isDeVs " << sig.isDeVs()
+ << "\n isDeVs: " << sig.isDeVs()
+ << "\n isBetaCompliance: " << sig.isBetaCompliance()
<< "\n notations:\n";
const std::vector<Notation> nota = sig.notations();
std::copy(nota.begin(), nota.end(),
diff --git a/lang/cpp/src/verificationresult.h b/lang/cpp/src/verificationresult.h
index f43bd39f..04c439de 100644
--- a/lang/cpp/src/verificationresult.h
+++ b/lang/cpp/src/verificationresult.h
@@ -139,6 +139,7 @@ public:
bool isWrongKeyUsage() const;
bool isVerifiedUsingChainModel() const;
bool isDeVs() const;
+ bool isBetaCompliance() const;
enum PKAStatus {
UnknownPKAStatus, PKAVerificationFailed, PKAVerificationSucceeded