diff options
| author | Andre Heinecke <[email protected]> | 2016-09-05 09:57:09 +0000 | 
|---|---|---|
| committer | Andre Heinecke <[email protected]> | 2016-09-05 09:57:09 +0000 | 
| commit | 444d85ace0dddff5c511961927052d9946035b00 (patch) | |
| tree | c027b0e394295a195dc14c28f9b950e7b67e9337 /lang/cpp/src | |
| parent | qt: Add missing header redirection (diff) | |
| download | gpgme-444d85ace0dddff5c511961927052d9946035b00.tar.gz gpgme-444d85ace0dddff5c511961927052d9946035b00.zip | |
cpp: Add ostream operators for key and uid
* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
* lang/cpp/src/key.h: Update accordingly.
--
This is helpful debugging / showing the state of a key / uid and
tofuinfo.
Diffstat (limited to 'lang/cpp/src')
| -rw-r--r-- | lang/cpp/src/key.cpp | 39 | ||||
| -rw-r--r-- | lang/cpp/src/key.h | 3 | 
2 files changed, 42 insertions, 0 deletions
| diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 6f40f666..204eeca2 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -28,6 +28,8 @@  #include <gpgme.h>  #include <string.h> +#include <istream> +#include <iterator>  const GpgME::Key::Null GpgME::Key::null; @@ -848,4 +850,41 @@ const char *UserID::Signature::policyURL() const      return 0;  } +std::ostream &operator<<(std::ostream &os, const UserID &uid) +{ +    os << "GpgME::UserID("; +    if (!uid.isNull()) { +        os << "\n name:      " << protect(uid.name()) +           << "\n email:     " << protect(uid.email()) +           << "\n comment:   " << protect(uid.comment()) +           << "\n validity:  " << uid.validityAsString() +           << "\n revoked:   " << uid.isRevoked() +           << "\n invalid:   " << uid.isInvalid() +           << "\n numsigs:   " << uid.numSignatures() +           << "\n tofuinfo:\n" << uid.tofuInfo(); +    } +    return os << ')'; +} + +std::ostream &operator<<(std::ostream &os, const Key &key) +{ +    os << "GpgME::Key("; +    if (!key.isNull()) { +        os << "\n protocol:   " << protect(key.protocolAsString()) +           << "\n ownertrust: " << key.ownerTrustAsString() +           << "\n issuer:     " << protect(key.issuerName()) +           << "\n fingerprint:" << protect(key.primaryFingerprint()) +           << "\n listmode:   " << key.keyListMode() +           << "\n canSign:    " << key.canReallySign() +           << "\n canEncrypt: " << key.canEncrypt() +           << "\n canCertify: " << key.canCertify() +           << "\n canAuth:    " << key.canAuthenticate() +           << "\n uids:\n"; +        const std::vector<UserID> uids = key.userIDs(); +        std::copy(uids.begin(), uids.end(), +                  std::ostream_iterator<UserID>(os, "\n")); +    } +    return os << ')'; +} +  } // namespace GpgME diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index e8d7ee23..85b16dfc 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -391,6 +391,9 @@ private:      gpgme_key_sig_t sig;  }; +GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const UserID &uid); +GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const Key &key); +  } // namespace GpgME  GPGMEPP_MAKE_STD_SWAP_SPECIALIZATION(Key) | 
