~ubuntu-branches/debian/jessie/armory/jessie

« back to all changes in this revision

Viewing changes to cppForSwig/cryptopp/oaep.h

  • Committer: Package Import Robot
  • Author(s): Joseph Bisch
  • Date: 2014-10-07 10:22:45 UTC
  • Revision ID: package-import@ubuntu.com-20141007102245-2s3x3rhjxg689hek
Tags: upstream-0.92.3
ImportĀ upstreamĀ versionĀ 0.92.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef CRYPTOPP_OAEP_H
 
2
#define CRYPTOPP_OAEP_H
 
3
 
 
4
#include "pubkey.h"
 
5
#include "sha.h"
 
6
 
 
7
NAMESPACE_BEGIN(CryptoPP)
 
8
 
 
9
//! _
 
10
class CRYPTOPP_DLL OAEP_Base : public PK_EncryptionMessageEncodingMethod
 
11
{
 
12
public:
 
13
        bool ParameterSupported(const char *name) const {return strcmp(name, Name::EncodingParameters()) == 0;}
 
14
        size_t MaxUnpaddedLength(size_t paddedLength) const;
 
15
        void Pad(RandomNumberGenerator &rng, const byte *raw, size_t inputLength, byte *padded, size_t paddedLength, const NameValuePairs &parameters) const;
 
16
        DecodingResult Unpad(const byte *padded, size_t paddedLength, byte *raw, const NameValuePairs &parameters) const;
 
17
 
 
18
protected:
 
19
        virtual unsigned int DigestSize() const =0;
 
20
        virtual HashTransformation * NewHash() const =0;
 
21
        virtual MaskGeneratingFunction * NewMGF() const =0;
 
22
};
 
23
 
 
24
//! <a href="http://www.weidai.com/scan-mirror/ca.html#cem_OAEP-MGF1">EME-OAEP</a>, for use with classes derived from TF_ES
 
25
template <class H, class MGF=P1363_MGF1>
 
26
class OAEP : public OAEP_Base, public EncryptionStandard
 
27
{
 
28
public:
 
29
        static std::string CRYPTOPP_API StaticAlgorithmName() {return std::string("OAEP-") + MGF::StaticAlgorithmName() + "(" + H::StaticAlgorithmName() + ")";}
 
30
        typedef OAEP<H, MGF> EncryptionMessageEncodingMethod;
 
31
 
 
32
protected:
 
33
        unsigned int DigestSize() const {return H::DIGESTSIZE;}
 
34
        HashTransformation * NewHash() const {return new H;}
 
35
        MaskGeneratingFunction * NewMGF() const {return new MGF;}
 
36
};
 
37
 
 
38
CRYPTOPP_DLL_TEMPLATE_CLASS OAEP<SHA>;
 
39
 
 
40
NAMESPACE_END
 
41
 
 
42
#endif