diff options
| -rw-r--r-- | NEWS | 1 | ||||
| -rw-r--r-- | lang/cpp/src/data.cpp | 5 | ||||
| -rw-r--r-- | lang/cpp/src/data.h | 3 | ||||
| -rw-r--r-- | lang/qt/tests/t-various.cpp | 19 | 
4 files changed, 28 insertions, 0 deletions
@@ -8,6 +8,7 @@ Noteworthy changes in version 1.11.2 (unreleased)   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   cpp: DecryptionResult::sessionKey    NEW.   cpp: DecryptionResult::symkeyAlgo    NEW. + cpp: Data::rewind                    NEW.  Noteworthy changes in version 1.11.1 (2018-04-20)  ------------------------------------------------- diff --git a/lang/cpp/src/data.cpp b/lang/cpp/src/data.cpp index 52b8da24..2782aa79 100644 --- a/lang/cpp/src/data.cpp +++ b/lang/cpp/src/data.cpp @@ -232,6 +232,11 @@ off_t GpgME::Data::seek(off_t offset, int whence)      return gpgme_data_seek(d->data, offset, whence);  } +GpgME::Error GpgME::Data::rewind() +{ +    return Error(gpgme_data_rewind(d->data)); +} +  std::vector<GpgME::Key> GpgME::Data::toKeys(Protocol proto) const  {      std::vector<GpgME::Key> ret; diff --git a/lang/cpp/src/data.h b/lang/cpp/src/data.h index 446f6fa3..df8607e7 100644 --- a/lang/cpp/src/data.h +++ b/lang/cpp/src/data.h @@ -110,6 +110,9 @@ public:      ssize_t write(const void *buffer, size_t length);      off_t seek(off_t offset, int whence); +    /* Convenience function to do a seek (0, SEEK_SET).  */ +    Error rewind(); +      /** Try to parse the data to a key object using the       * Protocol proto. Returns an empty list on error.*/      std::vector<Key> toKeys(const Protocol proto = Protocol::OpenPGP) const; diff --git a/lang/qt/tests/t-various.cpp b/lang/qt/tests/t-various.cpp index 75456281..76e68063 100644 --- a/lang/qt/tests/t-various.cpp +++ b/lang/qt/tests/t-various.cpp @@ -98,6 +98,25 @@ private Q_SLOTS:          QVERIFY(key.primaryFingerprint() == QStringLiteral("7A0904B6950DA998020A1AD4BE41C0C3A5FF1F3C"));      } +    void testDataRewind() +    { +        if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.14") { +            return; +        } +        QGpgME::QByteArrayDataProvider dp(aKey); +        Data data(&dp); +        char buf[20]; +        data.read(buf, 20); + +        auto keys = data.toKeys(); +        QVERIFY(keys.size() == 0); + +        data.rewind(); + +        keys = data.toKeys(); +        QVERIFY(keys.size() == 1); +    } +      void testQuickUid()      {          if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.13") {  | 
