forked from dolphin-emu/dolphin
		
	
		
			
	
	
		
			25 lines
		
	
	
		
			541 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			541 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// Copyright 2017 Dolphin Emulator Project
							 | 
						||
| 
								 | 
							
								// Licensed under GPLv2+
							 | 
						||
| 
								 | 
							
								// Refer to the license.txt file included.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <mbedtls/aes.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "Common/Crypto/AES.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Common
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								namespace AES
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								std::vector<u8> Decrypt(const u8* key, u8* iv, const u8* src, size_t size)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  mbedtls_aes_context aes_ctx;
							 | 
						||
| 
								 | 
							
								  std::vector<u8> buffer(size);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  mbedtls_aes_setkey_dec(&aes_ctx, key, 128);
							 | 
						||
| 
								 | 
							
								  mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_DECRYPT, size, iv, src, buffer.data());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return buffer;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								}  // namespace AES
							 | 
						||
| 
								 | 
							
								}  // namespace Common
							 |