remove WAKE-CFB
parent
9a892095a0
commit
7fbcee6ca1
|
|
@ -1,13 +1,7 @@
|
||||||
AlgorithmType: SymmetricCipher
|
AlgorithmType: SymmetricCipher
|
||||||
Source: Generated by Crypto++ 5.6.1
|
Source: Generated by Crypto++ 5.6.1
|
||||||
Key: r2 00112233445566778899AABBCCDDEEFF
|
Key: r2 00112233445566778899AABBCCDDEEFF
|
||||||
Name: WAKE-CFB-LE
|
|
||||||
Plaintext: r80 00 r80 01
|
Plaintext: r80 00 r80 01
|
||||||
Ciphertext: FFEEDDCCDF42B9D4939C351568AB4888BD9264CA66CF7F7885141F6934F3F390F1987B8609B733919DC5F73F7BED93ECDCD4F35FF32828553B8AFAD113DDA6565932553D9143AA886AE859167327F3C260434E6CF23C167C7EF0772BFAECA2FFDD1BD61640505AC2D997F2419990975D6841E9788E7617C0E79DACF18E1B6463F6D8923602385AA995BBF890BF67F87E9DC3C0C3023F2C2B19B98900BB1E2FFC
|
|
||||||
Test: Encrypt
|
|
||||||
Name: WAKE-CFB-BE
|
|
||||||
Ciphertext: FFEEDDCC7C7C6FA2584C7634D139AE344A8EBA8E272CAF98F9BC424ECE6E2C97AF0214E41053BB0A27B1C36E3FF05E1AC3AE5E9693EC2BF8F917CBC40B0344ED4E65C906D1DBB7F350F63769C6D07C43415DF6714D200D7972AD96C20C5897424F219B4649842ECFC9EEDB8F020CD702FC585C3251A6434953C6FE9066E4D64A3B910B94E55E92E23FD5D17F37947313D3C2BD2FC189399955F8CD6BF8D14567
|
|
||||||
Test: Encrypt
|
|
||||||
Name: WAKE-OFB-LE
|
Name: WAKE-OFB-LE
|
||||||
Ciphertext: FFEEDDCCDF42B9D4939C351568AB4888BD9264CA66CF7F7885141F6934F3F390F1987B8609B733919DC5F73F7BED93ECDCD4F35FF32828553B8AFAD113DDA6565932553D9143AA886AE859167327F3C260434E6C90A0895FD33E6B6412526521FA0B12F4ECEE3E8F4F96DCF70907AAFB5E29C40FC10EB70A4970736E98DF98C615AC844A46FB8E4AEBBBF599DF7B73930B94776C6C8757BE51B34E71E9B514AE
|
Ciphertext: FFEEDDCCDF42B9D4939C351568AB4888BD9264CA66CF7F7885141F6934F3F390F1987B8609B733919DC5F73F7BED93ECDCD4F35FF32828553B8AFAD113DDA6565932553D9143AA886AE859167327F3C260434E6C90A0895FD33E6B6412526521FA0B12F4ECEE3E8F4F96DCF70907AAFB5E29C40FC10EB70A4970736E98DF98C615AC844A46FB8E4AEBBBF599DF7B73930B94776C6C8757BE51B34E71E9B514AE
|
||||||
Test: Encrypt
|
Test: Encrypt
|
||||||
|
|
|
||||||
|
|
@ -112,8 +112,6 @@ void RegisterFactories()
|
||||||
RegisterSymmetricCipherDefaultFactories<Weak::MARC4>();
|
RegisterSymmetricCipherDefaultFactories<Weak::MARC4>();
|
||||||
RegisterSymmetricCipherDefaultFactories<WAKE_OFB<LittleEndian> >();
|
RegisterSymmetricCipherDefaultFactories<WAKE_OFB<LittleEndian> >();
|
||||||
RegisterSymmetricCipherDefaultFactories<WAKE_OFB<BigEndian> >();
|
RegisterSymmetricCipherDefaultFactories<WAKE_OFB<BigEndian> >();
|
||||||
RegisterSymmetricCipherDefaultFactories<Weak::WAKE_CFB<LittleEndian> >();
|
|
||||||
RegisterSymmetricCipherDefaultFactories<Weak::WAKE_CFB<BigEndian> >();
|
|
||||||
RegisterSymmetricCipherDefaultFactories<SEAL<LittleEndian> >();
|
RegisterSymmetricCipherDefaultFactories<SEAL<LittleEndian> >();
|
||||||
RegisterAuthenticatedSymmetricCipherDefaultFactories<CCM<AES> >();
|
RegisterAuthenticatedSymmetricCipherDefaultFactories<CCM<AES> >();
|
||||||
RegisterAuthenticatedSymmetricCipherDefaultFactories<GCM<AES> >();
|
RegisterAuthenticatedSymmetricCipherDefaultFactories<GCM<AES> >();
|
||||||
|
|
|
||||||
18
wake.cpp
18
wake.cpp
|
|
@ -7,8 +7,6 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
void WAKE_TestInstantiations()
|
void WAKE_TestInstantiations()
|
||||||
{
|
{
|
||||||
Weak::WAKE_CFB<>::Encryption x1;
|
|
||||||
Weak::WAKE_CFB<>::Decryption x3;
|
|
||||||
WAKE_OFB<>::Encryption x2;
|
WAKE_OFB<>::Encryption x2;
|
||||||
WAKE_OFB<>::Decryption x4;
|
WAKE_OFB<>::Decryption x4;
|
||||||
}
|
}
|
||||||
|
|
@ -67,22 +65,6 @@ void WAKE_Policy<B>::CipherSetKey(const NameValuePairs ¶ms, const byte *key,
|
||||||
GenKey(k0, k1, k2, k3);
|
GenKey(k0, k1, k2, k3);
|
||||||
}
|
}
|
||||||
|
|
||||||
// CFB
|
|
||||||
template <class B>
|
|
||||||
void WAKE_Policy<B>::Iterate(byte *output, const byte *input, CipherDir dir, size_t iterationCount)
|
|
||||||
{
|
|
||||||
RegisterOutput<B> registerOutput(output, input, dir);
|
|
||||||
|
|
||||||
while (iterationCount--)
|
|
||||||
{
|
|
||||||
r3 = M(r3, ConditionalByteReverse(B::ToEnum(), r6));
|
|
||||||
r4 = M(r4, r3);
|
|
||||||
r5 = M(r5, r4);
|
|
||||||
r6 = M(r6, r5);
|
|
||||||
registerOutput(r6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// OFB
|
// OFB
|
||||||
template <class B>
|
template <class B>
|
||||||
void WAKE_Policy<B>::OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
|
void WAKE_Policy<B>::OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
|
||||||
|
|
|
||||||
25
wake.h
25
wake.h
|
|
@ -7,13 +7,6 @@
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
//! _
|
|
||||||
template <class B = BigEndian>
|
|
||||||
struct WAKE_CFB_Info : public FixedKeyLength<32>
|
|
||||||
{
|
|
||||||
static const char *StaticAlgorithmName() {return B::ToEnum() == LITTLE_ENDIAN_ORDER ? "WAKE-CFB-LE" : "WAKE-CFB-BE";}
|
|
||||||
};
|
|
||||||
|
|
||||||
//! _
|
//! _
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
struct WAKE_OFB_Info : public FixedKeyLength<32>
|
struct WAKE_OFB_Info : public FixedKeyLength<32>
|
||||||
|
|
@ -32,31 +25,15 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
class CRYPTOPP_NO_VTABLE WAKE_Policy
|
class CRYPTOPP_NO_VTABLE WAKE_Policy : public AdditiveCipherConcretePolicy<word32, 1, 64>, protected WAKE_Base
|
||||||
: public CFB_CipherConcretePolicy<word32, 1>
|
|
||||||
, public AdditiveCipherConcretePolicy<word32, 1, 64>
|
|
||||||
, protected WAKE_Base
|
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void CipherSetKey(const NameValuePairs ¶ms, const byte *key, size_t length);
|
void CipherSetKey(const NameValuePairs ¶ms, const byte *key, size_t length);
|
||||||
// CFB
|
|
||||||
byte * GetRegisterBegin() {return (byte *)&r6;}
|
|
||||||
void Iterate(byte *output, const byte *input, CipherDir dir, size_t iterationCount);
|
|
||||||
// OFB
|
// OFB
|
||||||
void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount);
|
void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount);
|
||||||
bool CipherIsRandomAccess() const {return false;}
|
bool CipherIsRandomAccess() const {return false;}
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace Weak {
|
|
||||||
//! <a href="http://www.cryptolounge.org/wiki/WAKE">WAKE-CFB-BE</a>
|
|
||||||
template <class B = BigEndian>
|
|
||||||
struct WAKE_CFB : public WAKE_CFB_Info<B>, public SymmetricCipherDocumentation
|
|
||||||
{
|
|
||||||
typedef SymmetricCipherFinal<ConcretePolicyHolder<WAKE_Policy<B>, CFB_EncryptionTemplate<> >, WAKE_CFB_Info<B> > Encryption;
|
|
||||||
typedef SymmetricCipherFinal<ConcretePolicyHolder<WAKE_Policy<B>, CFB_DecryptionTemplate<> >, WAKE_CFB_Info<B> > Decryption;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//! WAKE-OFB
|
//! WAKE-OFB
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
struct WAKE_OFB : public WAKE_OFB_Info<B>, public SymmetricCipherDocumentation
|
struct WAKE_OFB : public WAKE_OFB_Info<B>, public SymmetricCipherDocumentation
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue