/************************************************* * PK Utility Classes Source File * * (C) 1999-2007 Jack Lloyd * *************************************************/ #include #include namespace Botan { /************************************************* * Encode a message * *************************************************/ SecureVector EME::encode(const byte msg[], u32bit msg_len, u32bit key_bits, RandomNumberGenerator& rng) const { return pad(msg, msg_len, key_bits, rng); } /************************************************* * Encode a message * *************************************************/ SecureVector EME::encode(const MemoryRegion& msg, u32bit key_bits, RandomNumberGenerator& rng) const { return pad(msg, msg.size(), key_bits, rng); } /************************************************* * Decode a message * *************************************************/ SecureVector EME::decode(const byte msg[], u32bit msg_len, u32bit key_bits) const { return unpad(msg, msg_len, key_bits); } /************************************************* * Decode a message * *************************************************/ SecureVector EME::decode(const MemoryRegion& msg, u32bit key_bits) const { return unpad(msg, msg.size(), key_bits); } /************************************************* * Default signature decoding * *************************************************/ bool EMSA::verify(const MemoryRegion& coded, const MemoryRegion& raw, u32bit key_bits) throw() { try { return (coded == encoding_of(raw, key_bits, global_state().prng_reference())); } catch(Invalid_Argument) { return false; } } }