Changes to TMD and CIA builder

Prepare for legit CIA.
This commit is contained in:
Pengfei
2021-07-30 17:07:42 +08:00
parent d14ea03271
commit 3021cfe5f0
6 changed files with 121 additions and 22 deletions
+10
View File
@@ -4,10 +4,12 @@
#include <cstring>
#include <string_view>
#include <cryptopp/rsa.h>
#include "common/alignment.h"
#include "common/assert.h"
#include "common/common_funcs.h"
#include "common/file_util.h"
#include "common/string_util.h"
#include "core/ncch/cia_common.h"
#include "core/ncch/ticket.h"
@@ -36,6 +38,14 @@ bool Ticket::Save(FileUtil::IOFile& file) const {
return true;
}
bool Ticket::ValidateSignature() const {
const auto issuer =
Common::StringFromFixedZeroTerminatedBuffer(body.issuer.data(), body.issuer.size());
return signature.Verify(issuer, [this](CryptoPP::PK_MessageAccumulator* message) {
message->Update(reinterpret_cast<const u8*>(&body), sizeof(body));
});
}
std::size_t Ticket::GetSize() const {
return signature.GetSize() + sizeof(body);
}