From 7115c30f76182679c53375bd6c6717c2179943a7 Mon Sep 17 00:00:00 2001 From: Pengfei Date: Sat, 31 Jul 2021 17:23:33 +0800 Subject: [PATCH] Fix TMD signature validation --- src/core/ncch/title_metadata.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/core/ncch/title_metadata.cpp b/src/core/ncch/title_metadata.cpp index 552b6b5..2fc8cd0 100644 --- a/src/core/ncch/title_metadata.cpp +++ b/src/core/ncch/title_metadata.cpp @@ -142,9 +142,8 @@ bool TitleMetadata::ValidateSignature() const { const auto issuer = Common::StringFromFixedZeroTerminatedBuffer(tmd_body.issuer.data(), tmd_body.issuer.size()); return signature.Verify(issuer, [this](auto* message) { - message->Update(reinterpret_cast(&tmd_body), sizeof(tmd_body)); - message->Update(reinterpret_cast(tmd_chunks.data()), - tmd_chunks.size() * sizeof(ContentChunk)); + static_assert(offsetof(Body, contentinfo) == 0xC4, "Signed data length is not correct"); + message->Update(reinterpret_cast(&tmd_body), offsetof(Body, contentinfo)); }); }