|
OpenTTD Source 20251116-master-g21329071df
|
Implementation of signature validation routines. More...
#include "stdafx.h"#include "signature.h"#include "debug.h"#include "fileio_func.h"#include "string_func.h"#include "3rdparty/monocypher/monocypher.h"#include "3rdparty/monocypher/monocypher-ed25519.h"#include "3rdparty/nlohmann/json.hpp"#include "safeguards.h"Go to the source code of this file.
Functions | |
| static std::string | CalculateHashV1 (const std::string &filename) |
| Calculate the 32-byte blake2b hash of a file. | |
| static bool | ValidateChecksum (const std::string &filename, const std::string &checksum) |
| Validate whether the checksum of a file is the same. | |
| static bool | ValidateSignature (const std::string &signature, const nlohmann::json &files, const std::string &filename) |
| Validate whether the signature is valid for this set of files. | |
| static bool | ValidateSchema (const nlohmann::json &signatures, const std::string &filename) |
| Validate the signatures file complies with the JSON schema. | |
| static bool | _ValidateSignatureFile (const std::string &filename) |
| Validate that the signatures mentioned in the signature file are matching the files in question. | |
| bool | ValidateSignatureFile (const std::string &filename) |
| Validate that the signatures mentioned in the signature file are matching the files in question. | |
Variables | |
| static const std::initializer_list< std::array< uint8_t, 32 > > | _public_keys_v1 |
| The public keys used for signature validation. | |
Implementation of signature validation routines.
Definition in file signature.cpp.
|
static |
Validate that the signatures mentioned in the signature file are matching the files in question.
Definition at line 194 of file signature.cpp.
References Debug, FioFOpenFile(), FS2OTTD(), NO_DIRECTORY, OTTD2FS(), ValidateChecksum(), ValidateSchema(), and ValidateSignature().
Referenced by ValidateSignatureFile().
|
static |
Calculate the 32-byte blake2b hash of a file.
| filename | The filename to calculate the hash of. |
Definition at line 36 of file signature.cpp.
References FioFOpenFile(), FormatArrayAsHex(), and NO_DIRECTORY.
Referenced by ValidateChecksum().
|
static |
Validate whether the checksum of a file is the same.
| filename | The filename to validate the checksum of. |
| checksum | The expected checksum. |
Definition at line 63 of file signature.cpp.
References CalculateHashV1(), and Debug.
Referenced by _ValidateSignatureFile().
|
static |
Validate the signatures file complies with the JSON schema.
| signatures | The signatures JSON to validate. |
| filename | The filename of the signatures file (for error-reporting). |
Definition at line 145 of file signature.cpp.
References Debug.
Referenced by _ValidateSignatureFile().
|
static |
Validate whether the signature is valid for this set of files.
| signature | The signature to validate. |
| files | The files to validate the signature against. |
| filename | The filename of the signatures file (for error-reporting). |
Definition at line 101 of file signature.cpp.
References _public_keys_v1, ConvertHexToBytes(), and Debug.
Referenced by _ValidateSignatureFile().
| bool ValidateSignatureFile | ( | const std::string & | filename | ) |
Validate that the signatures mentioned in the signature file are matching the files in question.
Definition at line 267 of file signature.cpp.
References _ValidateSignatureFile().
|
static |
The public keys used for signature validation.
Definition at line 25 of file signature.cpp.
Referenced by ValidateSignature().