- Main Page
- Namespaces
- Classes
- Files

# seed.h

Go to the documentation of this file.

    00001 #ifndef CRYPTOPP_SEED_H
    00002 #define CRYPTOPP_SEED_H
    00003
    00004 /** \file
    00005 */
    00006
    00007 #include "seckey.h"
    00008 #include "secblock.h"
    00009
    00010 NAMESPACE_BEGIN(CryptoPP)
    00011
    00012 //! _
    00013 struct SEED_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, public FixedRounds<16>
    00014 {
    00015         static const char *StaticAlgorithmName() {return "SEED";}
    00016 };
    00017
    00018 /// <a href="http://www.cryptolounge.org/wiki/SEED">SEED</a>
    00019 class SEED : public SEED_Info, public BlockCipherDocumentation
    00020 {
    00021         class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SEED_Info>
    00022         {
    00023         public:
    00024                 void UncheckedSetKey(const byte *key, unsigned int length, const NameValuePairs &params);
    00025                 void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
    00026
    00027         protected:
    00028                 FixedSizeSecBlock<word32, 32> m_k;
    00029         };
    00030
    00031 public:
    00032         typedef BlockCipherFinal<ENCRYPTION, Base> Encryption;
    00033         typedef BlockCipherFinal<DECRYPTION, Base> Decryption;
    00034 };
    00035
    00036 NAMESPACE_END
    00037
    00038 #endif