diff options
Diffstat (limited to 'lang/cpp/src')
| -rw-r--r-- | lang/cpp/src/decryptionresult.cpp | 10 | ||||
| -rw-r--r-- | lang/cpp/src/decryptionresult.h | 1 | ||||
| -rw-r--r-- | lang/cpp/src/key.cpp | 22 | ||||
| -rw-r--r-- | lang/cpp/src/key.h | 2 | ||||
| -rw-r--r-- | lang/cpp/src/verificationresult.cpp | 8 | ||||
| -rw-r--r-- | lang/cpp/src/verificationresult.h | 1 | 
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 | 
