SuperMarioOdysseyOnline/include/nn/crypto.h
2022-06-16 14:33:18 -07:00

89 lines
No EOL
2.4 KiB
C++

/**
* @file crypto.h
* @brief Crypto service implementation.
*/
#pragma once
#include "types.h"
namespace nn
{
namespace crypto
{
class Sha256Context;
void DecryptAes128Cbc(void *, u64, void const *, u64, void const *, u64, void const *, u64);
void EncryptAes128Cbc(void *, u64, void const *, u64, void const *, u64, void const *, u64);
void DecryptAes128Ccm(void *, u64, void *, u64, void const *, u64, void const *, u64, void const *, u64, void const *, u64, u64);
namespace detail
{
class Md5Impl
{
public:
void Initialize();
void Update(void const *, u64 dataSize);
void ProcessBlock();
void GetHash(void *, u64 hashSize);
void ProcessLastBlock();
u32 _0;
u32 _4;
u32 _8;
u32 _C;
u8 _10[0x50-0x10];
u64 _50;
u32 _58;
};
class Sha1Impl
{
public:
void Initialize();
void Update(void const *, u64);
void ProcessBlock(void const *);
void GetHash(void *destHash, u64);
void ProcessLastBlock();
u64 _0;
u64 _8;
u32 _10;
u128 _14;
u128 _24;
u128 _34;
u32 _44;
u64 _48;
u64 _50;
u64 _58;
u64 _60;
};
class Sha256Impl
{
public:
void Initialize();
void Update(void const *, u64);
void ProcessBlocks(u8 const *, u64);
void GetHash(void *destHash, u64);
void ProcessLastBlock();
void InitializeWithContext(nn::crypto::Sha256Context const *);
void GetContext(nn::crypto::Sha256Context *) const;
u64 _0;
u64 _8;
u32 _10;
u128 _14;
u128 _24;
u128 _34;
u32 _44;
u64 _48;
u64 _50;
u64 _58;
u64 _60;
u64 _68;
u32 _70;
};
};
};
};