From df5b75694f5abde94ccf05fa6c7a557b1ba9079b Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Fri, 27 Jul 2018 23:55:23 -0400 Subject: Remove files that are not used --- src/core/crypto/ctr_encryption_layer.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/core/crypto/ctr_encryption_layer.h (limited to 'src/core/crypto/ctr_encryption_layer.h') diff --git a/src/core/crypto/ctr_encryption_layer.h b/src/core/crypto/ctr_encryption_layer.h new file mode 100644 index 000000000..fe53e714b --- /dev/null +++ b/src/core/crypto/ctr_encryption_layer.h @@ -0,0 +1,31 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "aes_util.h" +#include "encryption_layer.h" +#include "key_manager.h" + +namespace Crypto { + +// Sits on top of a VirtualFile and provides CTR-mode AES decription. +struct CTREncryptionLayer : public EncryptionLayer { + CTREncryptionLayer(FileSys::VirtualFile base, Key128 key, size_t base_offset); + + size_t Read(u8* data, size_t length, size_t offset) const override; + + void SetIV(std::vector iv); + +private: + size_t base_offset; + + // Must be mutable as operations modify cipher contexts. + mutable AESCipher cipher; + mutable std::vector iv; + + void UpdateIV(size_t offset) const; +}; + +} // namespace Crypto -- cgit v1.2.3 From 239a3113e4c6a53a2c7b12e67a0f21afae24b0aa Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sat, 28 Jul 2018 21:39:42 -0400 Subject: Make XCI comply to review and style guidelines --- src/core/crypto/ctr_encryption_layer.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/core/crypto/ctr_encryption_layer.h') diff --git a/src/core/crypto/ctr_encryption_layer.h b/src/core/crypto/ctr_encryption_layer.h index fe53e714b..697d7c6a5 100644 --- a/src/core/crypto/ctr_encryption_layer.h +++ b/src/core/crypto/ctr_encryption_layer.h @@ -4,19 +4,20 @@ #pragma once -#include "aes_util.h" -#include "encryption_layer.h" -#include "key_manager.h" +#include "core/crypto/aes_util.h" +#include "core/crypto/encryption_layer.h" +#include "core/crypto/key_manager.h" -namespace Crypto { +namespace Core::Crypto { // Sits on top of a VirtualFile and provides CTR-mode AES decription. -struct CTREncryptionLayer : public EncryptionLayer { +class CTREncryptionLayer : public EncryptionLayer { +public: CTREncryptionLayer(FileSys::VirtualFile base, Key128 key, size_t base_offset); size_t Read(u8* data, size_t length, size_t offset) const override; - void SetIV(std::vector iv); + void SetIV(const std::vector& iv); private: size_t base_offset; @@ -28,4 +29,4 @@ private: void UpdateIV(size_t offset) const; }; -} // namespace Crypto +} // namespace Core::Crypto -- cgit v1.2.3 From 03149d3e4a7f8038d9c88cbeb19dee25a39e0042 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sun, 29 Jul 2018 19:00:09 -0400 Subject: Add missing includes and use const where applicable --- src/core/crypto/ctr_encryption_layer.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/crypto/ctr_encryption_layer.h') diff --git a/src/core/crypto/ctr_encryption_layer.h b/src/core/crypto/ctr_encryption_layer.h index 697d7c6a5..11b8683c7 100644 --- a/src/core/crypto/ctr_encryption_layer.h +++ b/src/core/crypto/ctr_encryption_layer.h @@ -4,6 +4,7 @@ #pragma once +#include #include "core/crypto/aes_util.h" #include "core/crypto/encryption_layer.h" #include "core/crypto/key_manager.h" -- cgit v1.2.3