mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-07-04 06:16:20 +12:00
Remove cryptoppwin submodule (#754)
Some checks failed
Android Build / x64 (release) (push) Has been cancelled
Android Build / arm64 (release) (push) Has been cancelled
HTTP Server Build / build (push) Has been cancelled
Hydra Core Build / Windows (push) Has been cancelled
Hydra Core Build / MacOS (push) Has been cancelled
Hydra Core Build / Linux (push) Has been cancelled
Hydra Core Build / Android-x64 (push) Has been cancelled
Hydra Core Build / ARM-Libretro (push) Has been cancelled
Linux AppImage Build / build (push) Has been cancelled
Linux Build / build (push) Has been cancelled
MacOS Build / MacOS-arm64 (push) Has been cancelled
MacOS Build / MacOS-x86_64 (push) Has been cancelled
MacOS Build / MacOS-Universal (push) Has been cancelled
Qt Build / Windows (push) Has been cancelled
Qt Build / MacOS-arm64 (push) Has been cancelled
Qt Build / MacOS-x86_64 (push) Has been cancelled
Qt Build / MacOS-Universal (push) Has been cancelled
Qt Build / Linux (push) Has been cancelled
Windows Build / build (push) Has been cancelled
iOS Simulator Build / build (push) Has been cancelled
Some checks failed
Android Build / x64 (release) (push) Has been cancelled
Android Build / arm64 (release) (push) Has been cancelled
HTTP Server Build / build (push) Has been cancelled
Hydra Core Build / Windows (push) Has been cancelled
Hydra Core Build / MacOS (push) Has been cancelled
Hydra Core Build / Linux (push) Has been cancelled
Hydra Core Build / Android-x64 (push) Has been cancelled
Hydra Core Build / ARM-Libretro (push) Has been cancelled
Linux AppImage Build / build (push) Has been cancelled
Linux Build / build (push) Has been cancelled
MacOS Build / MacOS-arm64 (push) Has been cancelled
MacOS Build / MacOS-x86_64 (push) Has been cancelled
MacOS Build / MacOS-Universal (push) Has been cancelled
Qt Build / Windows (push) Has been cancelled
Qt Build / MacOS-arm64 (push) Has been cancelled
Qt Build / MacOS-x86_64 (push) Has been cancelled
Qt Build / MacOS-Universal (push) Has been cancelled
Qt Build / Linux (push) Has been cancelled
Windows Build / build (push) Has been cancelled
iOS Simulator Build / build (push) Has been cancelled
This commit is contained in:
parent
5591606177
commit
6182d4cfe9
198 changed files with 51291 additions and 4 deletions
137
third_party/cryptoppwin/include/cryptopp/lubyrack.h
vendored
Normal file
137
third_party/cryptoppwin/include/cryptopp/lubyrack.h
vendored
Normal file
|
@ -0,0 +1,137 @@
|
|||
// lubyrack.h - originally written and placed in the public domain by Wei Dai
|
||||
|
||||
/// \file lubyrack.h
|
||||
/// \brief Classes for the Luby-Rackoff block cipher
|
||||
|
||||
#ifndef CRYPTOPP_LUBYRACK_H
|
||||
#define CRYPTOPP_LUBYRACK_H
|
||||
|
||||
#include "simple.h"
|
||||
#include "secblock.h"
|
||||
|
||||
NAMESPACE_BEGIN(CryptoPP)
|
||||
|
||||
/// \brief Luby-Rackoff block cipher information
|
||||
template <class T>
|
||||
struct LR_Info : public VariableKeyLength<16, 0, 2*(INT_MAX/2), 2>, public FixedBlockSize<2*T::DIGESTSIZE>
|
||||
{
|
||||
static std::string StaticAlgorithmName() {return std::string("LR/")+T::StaticAlgorithmName();}
|
||||
};
|
||||
|
||||
/// \brief Luby-Rackoff block cipher
|
||||
template <class T>
|
||||
class LR : public LR_Info<T>, public BlockCipherDocumentation
|
||||
{
|
||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<LR_Info<T> >
|
||||
{
|
||||
public:
|
||||
// VC60 workaround: have to define these functions within class definition
|
||||
void UncheckedSetKey(const byte *userKey, unsigned int length, const NameValuePairs ¶ms)
|
||||
{
|
||||
this->AssertValidKeyLength(length);
|
||||
|
||||
L = length/2;
|
||||
buffer.New(2*S);
|
||||
digest.New(S);
|
||||
key.Assign(userKey, 2*L);
|
||||
}
|
||||
|
||||
protected:
|
||||
CRYPTOPP_CONSTANT(S=T::DIGESTSIZE);
|
||||
unsigned int L; // key length / 2
|
||||
SecByteBlock key;
|
||||
|
||||
mutable T hm;
|
||||
mutable SecByteBlock buffer, digest;
|
||||
};
|
||||
|
||||
class CRYPTOPP_NO_VTABLE Enc : public Base
|
||||
{
|
||||
public:
|
||||
|
||||
#define KL this->key
|
||||
#define KR this->key+this->L
|
||||
#define BL this->buffer
|
||||
#define BR this->buffer+this->S
|
||||
#define IL inBlock
|
||||
#define IR inBlock+this->S
|
||||
#define OL outBlock
|
||||
#define OR outBlock+this->S
|
||||
|
||||
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
|
||||
{
|
||||
this->hm.Update(KL, this->L);
|
||||
this->hm.Update(IL, this->S);
|
||||
this->hm.Final(BR);
|
||||
xorbuf(BR, IR, this->S);
|
||||
|
||||
this->hm.Update(KR, this->L);
|
||||
this->hm.Update(BR, this->S);
|
||||
this->hm.Final(BL);
|
||||
xorbuf(BL, IL, this->S);
|
||||
|
||||
this->hm.Update(KL, this->L);
|
||||
this->hm.Update(BL, this->S);
|
||||
this->hm.Final(this->digest);
|
||||
xorbuf(BR, this->digest, this->S);
|
||||
|
||||
this->hm.Update(KR, this->L);
|
||||
this->hm.Update(OR, this->S);
|
||||
this->hm.Final(this->digest);
|
||||
xorbuf(BL, this->digest, this->S);
|
||||
|
||||
if (xorBlock)
|
||||
xorbuf(outBlock, xorBlock, this->buffer, 2*this->S);
|
||||
else
|
||||
memcpy_s(outBlock, 2*this->S, this->buffer, 2*this->S);
|
||||
}
|
||||
};
|
||||
|
||||
class CRYPTOPP_NO_VTABLE Dec : public Base
|
||||
{
|
||||
public:
|
||||
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
|
||||
{
|
||||
this->hm.Update(KR, this->L);
|
||||
this->hm.Update(IR, this->S);
|
||||
this->hm.Final(BL);
|
||||
xorbuf(BL, IL, this->S);
|
||||
|
||||
this->hm.Update(KL, this->L);
|
||||
this->hm.Update(BL, this->S);
|
||||
this->hm.Final(BR);
|
||||
xorbuf(BR, IR, this->S);
|
||||
|
||||
this->hm.Update(KR, this->L);
|
||||
this->hm.Update(BR, this->S);
|
||||
this->hm.Final(this->digest);
|
||||
xorbuf(BL, this->digest, this->S);
|
||||
|
||||
this->hm.Update(KL, this->L);
|
||||
this->hm.Update(OL, this->S);
|
||||
this->hm.Final(this->digest);
|
||||
xorbuf(BR, this->digest, this->S);
|
||||
|
||||
if (xorBlock)
|
||||
xorbuf(outBlock, xorBlock, this->buffer, 2*this->S);
|
||||
else
|
||||
std::memcpy(outBlock, this->buffer, 2*this->S);
|
||||
}
|
||||
#undef KL
|
||||
#undef KR
|
||||
#undef BL
|
||||
#undef BR
|
||||
#undef IL
|
||||
#undef IR
|
||||
#undef OL
|
||||
#undef OR
|
||||
};
|
||||
|
||||
public:
|
||||
typedef BlockCipherFinal<ENCRYPTION, Enc> Encryption;
|
||||
typedef BlockCipherFinal<DECRYPTION, Dec> Decryption;
|
||||
};
|
||||
|
||||
NAMESPACE_END
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue