1#ifndef CRYPTOPP_SEED_H 2#define CRYPTOPP_SEED_H 3 4/** \file 5*/ 6 7#include "seckey.h" 8#include "secblock.h" 9 10NAMESPACE_BEGIN(CryptoPP) 11 12//! _ 13struct SEED_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, public FixedRounds<16> 14{ 15 static const char *StaticAlgorithmName() {return "SEED";} 16}; 17 18/// <a href="http://www.cryptolounge.org/wiki/SEED">SEED</a> 19class SEED : public SEED_Info, public BlockCipherDocumentation 20{ 21 class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SEED_Info> 22 { 23 public: 24 void UncheckedSetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms); 25 void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; 26 27 protected: 28 FixedSizeSecBlock<word32, 32> m_k; 29 }; 30 31public: 32 typedef BlockCipherFinal<ENCRYPTION, Base> Encryption; 33 typedef BlockCipherFinal<DECRYPTION, Base> Decryption; 34}; 35 36NAMESPACE_END 37 38#endif 39