1 /* 2 * EMSA-Raw 3 * (C) 1999-2007 Jack Lloyd 4 * 5 * Botan is released under the Simplified BSD License (see license.txt) 6 */ 7 8 #ifndef BOTAN_EMSA_RAW_H_ 9 #define BOTAN_EMSA_RAW_H_ 10 11 #include <botan/emsa.h> 12 13 BOTAN_FUTURE_INTERNAL_HEADER(emsa_raw.h) 14 15 namespace Botan { 16 17 /** 18 * EMSA-Raw - sign inputs directly 19 * Don't use this unless you know what you are doing. 20 */ 21 class BOTAN_PUBLIC_API(2,0) EMSA_Raw final : public EMSA 22 { 23 public: clone()24 EMSA* clone() override { return new EMSA_Raw(); } 25 26 explicit EMSA_Raw(size_t expected_hash_size = 0) : m_expected_size(expected_hash_size)27 m_expected_size(expected_hash_size) {} 28 29 std::string name() const override; 30 private: 31 void update(const uint8_t[], size_t) override; 32 secure_vector<uint8_t> raw_data() override; 33 34 secure_vector<uint8_t> encoding_of(const secure_vector<uint8_t>&, size_t, 35 RandomNumberGenerator&) override; 36 37 bool verify(const secure_vector<uint8_t>&, 38 const secure_vector<uint8_t>&, 39 size_t) override; 40 41 const size_t m_expected_size; 42 secure_vector<uint8_t> m_message; 43 }; 44 45 } 46 47 #endif 48