IOS: Implement IOSC-like API

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.
This commit is contained in:
Léo Lam
2017-05-01 17:50:12 +02:00
parent e01624f64b
commit f8fb9e2d03
7 changed files with 425 additions and 3 deletions

View File

@ -13,6 +13,15 @@ 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