📄 pkcspad.h
字号:
#ifndef CRYPTOPP_PKCSPAD_H#define CRYPTOPP_PKCSPAD_H#include "cryptlib.h"#include "pubkey.h"#ifdef CRYPTOPP_IS_DLL#include "sha.h"#endifNAMESPACE_BEGIN(CryptoPP)//! <a href="http://www.weidai.com/scan-mirror/ca.html#cem_PKCS1-1.5">EME-PKCS1-v1_5</a>class PKCS_EncryptionPaddingScheme : public PK_EncryptionMessageEncodingMethod{public: static const char * StaticAlgorithmName() {return "EME-PKCS1-v1_5";} size_t MaxUnpaddedLength(size_t paddedLength) const; void Pad(RandomNumberGenerator &rng, const byte *raw, size_t inputLength, byte *padded, size_t paddedLength, const NameValuePairs ¶meters) const; DecodingResult Unpad(const byte *padded, size_t paddedLength, byte *raw, const NameValuePairs ¶meters) const;};template <class H> class PKCS_DigestDecoration{public: static const byte decoration[]; static const unsigned int length;};// PKCS_DigestDecoration can be instantiated with the following// classes as specified in PKCS#1 v2.0 and P1363aclass SHA1;class RIPEMD160;class Tiger;class SHA224;class SHA256;class SHA384;class SHA512;namespace Weak1 {class MD2;class MD5;}// end of list#ifdef CRYPTOPP_IS_DLLCRYPTOPP_DLL_TEMPLATE_CLASS PKCS_DigestDecoration<SHA1>;CRYPTOPP_DLL_TEMPLATE_CLASS PKCS_DigestDecoration<SHA224>;CRYPTOPP_DLL_TEMPLATE_CLASS PKCS_DigestDecoration<SHA256>;CRYPTOPP_DLL_TEMPLATE_CLASS PKCS_DigestDecoration<SHA384>;CRYPTOPP_DLL_TEMPLATE_CLASS PKCS_DigestDecoration<SHA512>;#endif//! <a href="http://www.weidai.com/scan-mirror/sig.html#sem_PKCS1-1.5">EMSA-PKCS1-v1_5</a>class CRYPTOPP_DLL PKCS1v15_SignatureMessageEncodingMethod : public PK_DeterministicSignatureMessageEncodingMethod{public: static const char * CRYPTOPP_API StaticAlgorithmName() {return "EMSA-PKCS1-v1_5";} size_t MinRepresentativeBitLength(size_t hashIdentifierSize, size_t digestSize) const {return 8 * (digestSize + hashIdentifierSize + 10);} void ComputeMessageRepresentative(RandomNumberGenerator &rng, const byte *recoverableMessage, size_t recoverableMessageLength, HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty, byte *representative, size_t representativeBitLength) const; struct HashIdentifierLookup { template <class H> struct HashIdentifierLookup2 { static HashIdentifier Lookup() { return HashIdentifier(PKCS_DigestDecoration<H>::decoration, PKCS_DigestDecoration<H>::length); } }; };};//! PKCS #1 version 1.5, for use with RSAES and RSASS/*! Only the following hash functions are supported by this signature standard: \dontinclude pkcspad.h \skip can be instantiated \until end of list*/struct PKCS1v15 : public SignatureStandard, public EncryptionStandard{ typedef PKCS_EncryptionPaddingScheme EncryptionMessageEncodingMethod; typedef PKCS1v15_SignatureMessageEncodingMethod SignatureMessageEncodingMethod;};NAMESPACE_END#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -