nstool/src/EsCertProcess.h

42 lines
1,000 B
C
Raw Normal View History

#pragma once
#include "types.h"
#include "KeyBag.h"
2022-06-29 13:19:36 +00:00
#include <pietendo/hac/es/SignedData.h>
#include <pietendo/hac/es/CertificateBody.h>
namespace nstool {
2021-10-16 08:00:17 +00:00
class EsCertProcess
{
public:
2021-10-16 08:00:17 +00:00
EsCertProcess();
void process();
void setInputFile(const std::shared_ptr<tc::io::IStream>& file);
void setKeyCfg(const KeyBag& keycfg);
void setCliOutputMode(CliOutputMode type);
void setVerifyMode(bool verify);
private:
2021-10-10 09:22:55 +00:00
std::string mModuleName;
std::shared_ptr<tc::io::IStream> mFile;
KeyBag mKeyCfg;
CliOutputMode mCliOutputMode;
bool mVerify;
2022-06-29 13:19:36 +00:00
std::vector<pie::hac::es::SignedData<pie::hac::es::CertificateBody>> mCert;
void importCerts();
void validateCerts();
void displayCerts();
2022-06-29 13:19:36 +00:00
void displayCert(const pie::hac::es::SignedData<pie::hac::es::CertificateBody>& cert);
2022-06-29 13:19:36 +00:00
std::string getSignTypeStr(pie::hac::es::sign::SignatureId type) const;
2021-10-10 09:22:55 +00:00
std::string getEndiannessStr(bool isLittleEndian) const;
2022-06-29 13:19:36 +00:00
std::string getPublicKeyTypeStr(pie::hac::es::cert::PublicKeyType type) const;
};
}