aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'lang/cpp/src')
-rw-r--r--lang/cpp/src/context.cpp5
-rw-r--r--lang/cpp/src/context.h2
-rw-r--r--lang/cpp/src/key.cpp20
-rw-r--r--lang/cpp/src/key.h14
4 files changed, 41 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp
index 2892d8b4..ce38db0b 100644
--- a/lang/cpp/src/context.cpp
+++ b/lang/cpp/src/context.cpp
@@ -228,6 +228,11 @@ Context *Context::createForProtocol(Protocol proto)
return new Context(ctx);
}
+std::unique_ptr<Context> Context::create(Protocol proto)
+{
+ return std::unique_ptr <Context> (createForProtocol(proto));
+}
+
std::unique_ptr<Context> Context::createForEngine(Engine eng, Error *error)
{
gpgme_ctx_t ctx = 0;
diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h
index 6e27daa6..d3700e03 100644
--- a/lang/cpp/src/context.h
+++ b/lang/cpp/src/context.h
@@ -68,6 +68,8 @@ public:
//
static Context *createForProtocol(Protocol proto);
+ /** Same as above but returning a unique ptr. */
+ static std::unique_ptr<Context> create(Protocol proto);
static std::unique_ptr<Context> createForEngine(Engine engine, Error *err = 0);
virtual ~Context();
diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp
index 8fc266ff..0d272926 100644
--- a/lang/cpp/src/key.cpp
+++ b/lang/cpp/src/key.cpp
@@ -1033,6 +1033,26 @@ time_t Key::lastUpdate() const
return static_cast<time_t>(key ? key->last_update : 0);
}
+bool Key::isBad() const
+{
+ return isNull() || isRevoked() || isExpired() || isDisabled() || isInvalid();
+}
+
+bool Subkey::isBad() const
+{
+ return isNull() || isRevoked() || isExpired() || isDisabled() || isInvalid();
+}
+
+bool UserID::isBad() const
+{
+ return isNull() || isRevoked() || isInvalid();
+}
+
+bool UserID::Signature::isBad() const
+{
+ return isNull() || isExpired() || isInvalid();
+}
+
std::ostream &operator<<(std::ostream &os, const UserID &uid)
{
os << "GpgME::UserID(";
diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h
index 76a0d4f4..c4edba07 100644
--- a/lang/cpp/src/key.h
+++ b/lang/cpp/src/key.h
@@ -98,6 +98,10 @@ public:
bool isDisabled() const;
bool isInvalid() const;
+ /*! Shorthand for isNull || isRevoked || isExpired ||
+ * isDisabled || isInvalid */
+ bool isBad() const;
+
bool canEncrypt() const;
/*!
This function contains a workaround for old gpgme's: all secret
@@ -250,6 +254,10 @@ public:
bool isInvalid() const;
bool isDisabled() const;
+ /*! Shorthand for isNull || isRevoked || isExpired ||
+ * isDisabled || isInvalid */
+ bool isBad() const;
+
bool canEncrypt() const;
bool canSign() const;
bool canCertify() const;
@@ -366,6 +374,9 @@ public:
bool isRevoked() const;
bool isInvalid() const;
+ /*! Shorthand for isNull || isRevoked || isInvalid */
+ bool isBad() const;
+
/** TOFU info for this userid.
* @returns The TOFU stats or a null TofuInfo.
*/
@@ -454,6 +465,9 @@ public:
bool isExpired() const;
bool isExportable() const;
+ /*! Shorthand for isNull || isExpired || isInvalid */
+ bool isBad() const;
+
const char *signerUserID() const;
const char *signerName() const;
const char *signerEmail() const;