key.h 743 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright 2017 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <array>
  6. #include <cstddef>
  7. #include "common/common_types.h"
  8. namespace HW {
  9. namespace AES {
  10. enum KeySlotID : size_t {
  11. APTWrap = 0x31,
  12. MaxKeySlotID = 0x40,
  13. };
  14. constexpr size_t AES_BLOCK_SIZE = 16;
  15. using AESKey = std::array<u8, AES_BLOCK_SIZE>;
  16. void InitKeys();
  17. void SetGeneratorConstant(const AESKey& key);
  18. void SetKeyX(size_t slot_id, const AESKey& key);
  19. void SetKeyY(size_t slot_id, const AESKey& key);
  20. void SetNormalKey(size_t slot_id, const AESKey& key);
  21. bool IsNormalKeyAvailable(size_t slot_id);
  22. AESKey GetNormalKey(size_t slot_id);
  23. } // namspace AES
  24. } // namespace HW