mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-30 23:23:07 +00:00
89 lines
No EOL
2.4 KiB
C++
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;
|
|
};
|
|
};
|
|
};
|
|
}; |