summaryrefslogtreecommitdiffstats
path: root/src/core/crypto/ctr_encryption_layer.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2020-08-03 20:14:39 +0200
committerLioncash <mathew1800@gmail.com>2020-08-03 20:29:58 +0200
commit15660bd8570735139d91d0165a2614747f570202 (patch)
tree6886854694175d87bf33924c1799b1b46e4fd05d /src/core/crypto/ctr_encryption_layer.cpp
parentipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465) (diff)
downloadyuzu-15660bd8570735139d91d0165a2614747f570202.tar
yuzu-15660bd8570735139d91d0165a2614747f570202.tar.gz
yuzu-15660bd8570735139d91d0165a2614747f570202.tar.bz2
yuzu-15660bd8570735139d91d0165a2614747f570202.tar.lz
yuzu-15660bd8570735139d91d0165a2614747f570202.tar.xz
yuzu-15660bd8570735139d91d0165a2614747f570202.tar.zst
yuzu-15660bd8570735139d91d0165a2614747f570202.zip
Diffstat (limited to 'src/core/crypto/ctr_encryption_layer.cpp')
-rw-r--r--src/core/crypto/ctr_encryption_layer.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/core/crypto/ctr_encryption_layer.cpp b/src/core/crypto/ctr_encryption_layer.cpp
index 902841c77..5c84bb0a4 100644
--- a/src/core/crypto/ctr_encryption_layer.cpp
+++ b/src/core/crypto/ctr_encryption_layer.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <algorithm>
#include <cstring>
#include "common/assert.h"
#include "core/crypto/ctr_encryption_layer.h"
@@ -10,8 +11,7 @@ namespace Core::Crypto {
CTREncryptionLayer::CTREncryptionLayer(FileSys::VirtualFile base_, Key128 key_,
std::size_t base_offset)
- : EncryptionLayer(std::move(base_)), base_offset(base_offset), cipher(key_, Mode::CTR),
- iv(16, 0) {}
+ : EncryptionLayer(std::move(base_)), base_offset(base_offset), cipher(key_, Mode::CTR) {}
std::size_t CTREncryptionLayer::Read(u8* data, std::size_t length, std::size_t offset) const {
if (length == 0)
@@ -39,9 +39,8 @@ std::size_t CTREncryptionLayer::Read(u8* data, std::size_t length, std::size_t o
return read + Read(data + read, length - read, offset + read);
}
-void CTREncryptionLayer::SetIV(const std::vector<u8>& iv_) {
- const auto length = std::min(iv_.size(), iv.size());
- iv.assign(iv_.cbegin(), iv_.cbegin() + length);
+void CTREncryptionLayer::SetIV(const IVData& iv_) {
+ iv = iv_;
}
void CTREncryptionLayer::UpdateIV(std::size_t offset) const {