aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf/Pl_MD5.hh
blob: 6454e5351ff50cbe45888c590ee805d1aed97796 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef __PL_MD5_HH__
#define __PL_MD5_HH__

// This pipeline sends its output to its successor unmodified.  After
// calling finish, the MD5 checksum of the data that passed through
// the pipeline is available.

// This pipeline is reusable; i.e., it is safe to call write() after
// calling finish().  The first call to write() after a call to
// finish() initializes a new MD5 object.

#include <qpdf/Pipeline.hh>
#include <qpdf/MD5.hh>

DLL_EXPORT
class Pl_MD5: public Pipeline
{
  public:
    Pl_MD5(char const* identifier, Pipeline* next);
    virtual ~Pl_MD5();
    virtual void write(unsigned char*, int);
    virtual void finish();
    std::string getHexDigest();

  private:
    bool in_progress;
    MD5 md5;
};

#endif // __PL_MD5_HH__