diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index c422fcc5..5d6560b1 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -1147,6 +1147,25 @@ std::ostream &operator<<(std::ostream &os, const UserID &uid) return os << ')'; } +std::ostream &operator<<(std::ostream &os, const Subkey &subkey) +{ + os << "GpgME::Subkey("; + if (!subkey.isNull()) { + os << "\n fingerprint: " << protect(subkey.fingerprint()) + << "\n creationTime: " << subkey.creationTime() + << "\n expirationTime:" << subkey.expirationTime() + << "\n isRevoked: " << subkey.isRevoked() + << "\n isExpired: " << subkey.isExpired() + << "\n isInvalid: " << subkey.isRevoked() + << "\n isDisabled: " << subkey.isInvalid() + << "\n canSign: " << subkey.canSign() + << "\n canEncrypt: " << subkey.canEncrypt() + << "\n canCertify: " << subkey.canCertify() + << "\n canAuth: " << subkey.canAuthenticate(); + } + return os << ')'; +} + std::ostream &operator<<(std::ostream &os, const Key &key) { os << "GpgME::Key("; @@ -1166,6 +1185,9 @@ std::ostream &operator<<(std::ostream &os, const Key &key) const std::vector uids = key.userIDs(); std::copy(uids.begin(), uids.end(), std::ostream_iterator(os, "\n")); + const std::vector subkeys = key.subkeys(); + std::copy(subkeys.begin(), subkeys.end(), + std::ostream_iterator(os, "\n")); } return os << ')'; } diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index fc5e67ee..d3c6125a 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -516,6 +516,7 @@ private: }; GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const UserID &uid); +GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const Subkey &subkey); GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const Key &key); } // namespace GpgME