mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-18 01:05:13 +00:00
66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
|
/**
|
||
|
* @file checksum.h
|
||
|
* @brief NEX Checksum Implementation.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "buffer.h"
|
||
|
#include "RootObject.h"
|
||
|
#include "types.h"
|
||
|
|
||
|
namespace nn
|
||
|
{
|
||
|
namespace nex
|
||
|
{
|
||
|
class ChecksumAlgorithm : public nn::nex::RootObject
|
||
|
{
|
||
|
public:
|
||
|
ChecksumAlgorithm();
|
||
|
|
||
|
virtual ~ChecksumAlgorithm();
|
||
|
|
||
|
virtual bool ComputeChecksum(nn::nex::Buffer const &, nn::nex::Buffer *) = 0;
|
||
|
// virtual bool ComputeChecksum(u8 const **, u64 const *, u64, nn::nex::SignatureBytes &) = 0;
|
||
|
virtual bool IsReady() const;
|
||
|
virtual void ComputeChecksumForTransport(u8 const *, u64);
|
||
|
virtual u32 ComputeChecksumForTransportArray(u8 const **, u64 const*, u64) = 0;
|
||
|
virtual u32 GetChecksumLength() = 0;
|
||
|
|
||
|
u64 _8;
|
||
|
u8 _10;
|
||
|
};
|
||
|
|
||
|
class MD5Checksum : public nn::nex::ChecksumAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
MD5Checksum();
|
||
|
|
||
|
virtual ~MD5Checksum();
|
||
|
|
||
|
virtual bool ComputeChecksum(nn::nex::Buffer const &, nn::nex::Buffer *);
|
||
|
virtual u32 ComputeChecksumForTransportArray(u8 const **, u64 const*, u64);
|
||
|
virtual u32 GetChecksumLength();
|
||
|
};
|
||
|
|
||
|
class CRC16Checksum : public nn::nex::ChecksumAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
CRC16Checksum();
|
||
|
|
||
|
virtual ~CRC16Checksum();
|
||
|
|
||
|
virtual bool ComputeChecksum(nn::nex::Buffer const &, nn::nex::Buffer *);
|
||
|
virtual u32 ComputeChecksumForTransportArray(u8 const **, u64 const*, u64);
|
||
|
virtual u32 GetChecksumLength();
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
this actually inherits some sort of KeyedChecksum thing. whatever
|
||
|
class HMACChecksum : public nn::nex::ChecksumAlgorithm
|
||
|
{
|
||
|
|
||
|
};
|
||
|
*/
|
||
|
};
|
||
|
};
|