/* * PSSR * (C) 1999-2007 Jack Lloyd * * Distributed under the terms of the Botan license */ #ifndef BOTAN_PSSR_H__ #define BOTAN_PSSR_H__ #include #include #include namespace Botan { /** * PSSR (called EMSA4 in IEEE 1363 and in old versions of the library) */ class BOTAN_DLL PSSR : public EMSA { public: /** * @param hash the hash object to use * @param salt_size the size of the salt to use in bytes * or zero to use the default */ PSSR(HashFunction* hash, size_t salt_size = 0); private: void update(const byte input[], size_t length); secure_vector raw_data(); secure_vector encoding_of(const secure_vector& msg, size_t output_bits, RandomNumberGenerator& rng); bool verify(const secure_vector& coded, const secure_vector& raw, size_t key_bits); size_t SALT_SIZE; std::unique_ptr hash; }; } #endif