[Pkg-gnupg-commit] [gpgme] 63/412: Cpp: Add support for gpgme_data_identify

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 22 21:26:16 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit d949d711dc1d944a9d627d39a89af74943a5a8c1
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Tue Apr 12 16:05:31 2016 +0200

    Cpp: Add support for gpgme_data_identify
    
    * lang/cpp/src/data.cpp (Data::type): New.
    * lang/cpp/src/data.h (Data::Type): New enum mapping.
---
 lang/cpp/src/data.cpp | 20 ++++++++++++++++++++
 lang/cpp/src/data.h   | 14 ++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/lang/cpp/src/data.cpp b/lang/cpp/src/data.cpp
index b07406c..bf9a629 100644
--- a/lang/cpp/src/data.cpp
+++ b/lang/cpp/src/data.cpp
@@ -162,6 +162,26 @@ GpgME::Error GpgME::Data::setEncoding(Encoding enc)
     return Error(gpgme_data_set_encoding(d->data, ge));
 }
 
+GpgME::Data::Type GpgME::Data::type() const
+{
+    if (isNull()) {
+        return Invalid;
+    }
+    switch (gpgme_data_identify(d->data, 0)) {
+    case GPGME_DATA_TYPE_INVALID:       return Invalid;
+    case GPGME_DATA_TYPE_UNKNOWN:       return Unknown;
+    case GPGME_DATA_TYPE_PGP_SIGNED:    return PGPSigned;
+    case GPGME_DATA_TYPE_PGP_OTHER:     return PGPOther;
+    case GPGME_DATA_TYPE_PGP_KEY:       return PGPKey;
+    case GPGME_DATA_TYPE_CMS_SIGNED:    return CMSSigned;
+    case GPGME_DATA_TYPE_CMS_ENCRYPTED: return CMSEncrypted;
+    case GPGME_DATA_TYPE_CMS_OTHER:     return CMSOther;
+    case GPGME_DATA_TYPE_X509_CERT:     return X509Cert;
+    case GPGME_DATA_TYPE_PKCS12:        return PKCS12;
+    }
+    return Invalid;
+}
+
 char *GpgME::Data::fileName() const
 {
     return gpgme_data_get_file_name(d->data);
diff --git a/lang/cpp/src/data.h b/lang/cpp/src/data.h
index 97e4202..efb1e79 100644
--- a/lang/cpp/src/data.h
+++ b/lang/cpp/src/data.h
@@ -82,6 +82,20 @@ public:
     Encoding encoding() const;
     Error setEncoding(Encoding encoding);
 
+    enum Type {
+        Invalid,
+        Unknown,
+        PGPSigned,
+        PGPOther,
+        PGPKey,
+        CMSSigned,
+        CMSEncrypted,
+        CMSOther,
+        X509Cert,
+        PKCS12
+    };
+    Type type() const;
+
     char *fileName() const;
     Error setFileName(const char *name);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list