mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
f8fb9e2d03
This prevents the IOS crypto code and keys from being spread over the codebase. Things only have to be implemented once, and can be used everywhere from the IOS code. Additionally, since ES exposes some IOSC calls directly (DeleteObject and Encrypt/Decrypt), we need this for proper emulation. Currently, this only supports AES key objects.
28 lines
590 B
C++
28 lines
590 B
C++
// Copyright 2017 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <vector>
|
|
|
|
#include "Common/CommonTypes.h"
|
|
|
|
namespace Common
|
|
{
|
|
namespace AES
|
|
{
|
|
enum class Mode
|
|
{
|
|
Decrypt,
|
|
Encrypt,
|
|
};
|
|
std::vector<u8> DecryptEncrypt(const u8* key, u8* iv, const u8* src, size_t size, Mode mode);
|
|
|
|
// Convenience functions
|
|
std::vector<u8> Decrypt(const u8* key, u8* iv, const u8* src, size_t size);
|
|
std::vector<u8> Encrypt(const u8* key, u8* iv, const u8* src, size_t size);
|
|
} // namespace AES
|
|
} // namespace Common
|