WiiWad.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright 2009 Dolphin Emulator Project
  2. // Licensed under GPLv2+
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <string>
  6. #include "Common/CommonTypes.h"
  7. namespace DiscIO
  8. {
  9. class IBlobReader;
  10. class WiiWAD
  11. {
  12. public:
  13. WiiWAD(const std::string& _rName);
  14. ~WiiWAD();
  15. bool IsValid() const { return m_Valid; }
  16. u32 GetCertificateChainSize() const { return m_CertificateChainSize; }
  17. u32 GetTicketSize() const { return m_TicketSize; }
  18. u32 GetTMDSize() const { return m_TMDSize; }
  19. u32 GetDataAppSize() const { return m_DataAppSize; }
  20. u32 GetFooterSize() const { return m_FooterSize; }
  21. u8* GetCertificateChain() const { return m_pCertificateChain; }
  22. u8* GetTicket() const { return m_pTicket; }
  23. u8* GetTMD() const { return m_pTMD; }
  24. u8* GetDataApp() const { return m_pDataApp; }
  25. u8* GetFooter() const { return m_pFooter; }
  26. static bool IsWiiWAD(const std::string& _rName);
  27. private:
  28. bool m_Valid;
  29. u32 m_CertificateChainSize;
  30. u32 m_TicketSize;
  31. u32 m_TMDSize;
  32. u32 m_DataAppSize;
  33. u32 m_FooterSize;
  34. u8* m_pCertificateChain;
  35. u8* m_pTicket;
  36. u8* m_pTMD;
  37. u8* m_pDataApp;
  38. u8* m_pFooter;
  39. u8* CreateWADEntry(DiscIO::IBlobReader& _rReader, u32 _Size, u64 _Offset);
  40. bool ParseWAD(DiscIO::IBlobReader& _rReader);
  41. };
  42. }