5#include "Containers/Array.h"
6#include "Containers/Map.h"
106 for (
int32 i = 0; i < 16; i++)
108 MD5 += FString::Printf(
TEXT(
"%02x"), Digest[i]);
187 return Hash.WriteCompactBinary(Writer);
222#define HASHES_SHA_DIVIDER "+++"
250 for (
int i = 0; i <
Count; ++i)
292 return *
reinterpret_cast<const uint32*
>(
InKey.Hash);
338 template <
typename Type UE_REQUIRES(TIsPODType<Type>::Value)>
542 bool bIsPersistent=
false,
#define check(expr)
Definition AssertionMacros.h:314
void BytesToHex(const uint8 *In, int32 Count, FString &Out)
Definition BytesToHex.cpp:97
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_INTRINSIC_TYPE_LAYOUT(T)
Definition MemoryLayout.h:760
CORE_API void appOnFailSHAVerification(const TCHAR *FailedPathname, bool bFailedDueToMissingHash)
Definition SecureHash.cpp:1507
FGuid MD5HashToGuid(const FMD5Hash &Hash)
Definition SecureHash.h:203
#define TCHAR_TO_ANSI(str)
Definition StringConv.h:1019
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
TCHAR NibbleToTChar(uint8 Num)
Definition UnrealString.h:70
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
uint32 Size
Definition VulkanMemory.cpp:4034
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition SecureHash.h:432
bool CanAbandon()
Definition SecureHash.h:486
void Abandon()
Definition SecureHash.h:494
bool bIsUnfoundHashAnError
Definition SecureHash.h:447
uint8 Hash[20]
Definition SecureHash.h:441
CORE_API void DoWork()
Definition SecureHash.cpp:1441
FAsyncSHAVerify(void *InBuffer, uint64 InBufferSize, bool bInShouldDeleteBuffer, const TCHAR *InPathname, bool bInIsUnfoundHashAnError)
Definition SecureHash.h:464
void * Buffer
Definition SecureHash.h:435
uint64 BufferSize
Definition SecureHash.h:438
UE_FORCEINLINE_HINT TStatId GetStatId() const
Definition SecureHash.h:503
FString Pathname
Definition SecureHash.h:444
bool bShouldDeleteBuffer
Definition SecureHash.h:450
Definition BufferReader.h:16
Definition SecureHash.h:525
bool bIsUnfoundHashAnError
Definition SecureHash.h:568
virtual CORE_API ~FBufferReaderWithSHA()
Definition SecureHash.cpp:1520
CORE_API bool Close() override
Definition SecureHash.cpp:1525
FBufferReaderWithSHA(void *Data, int64 Size, bool bInFreeOnClose, const TCHAR *SHASourcePathname, bool bIsPersistent=false, bool bInIsUnfoundHashAnError=false)
Definition SecureHash.h:537
virtual FString GetArchiveName() const
Definition SecureHash.h:562
FString SourcePathname
Definition SecureHash.h:566
Definition CompactBinary.h:610
Definition CompactBinaryWriter.h:68
!it would be cool if these were implemented as subclasses of
Definition SecureHash.h:58
CORE_API ~FMD5()
Definition SecureHash.cpp:130
static FString HashBytes(const uint8 *input, uint64 inputLen)
Definition SecureHash.h:96
static FString HashAnsiString(const TCHAR *String)
Definition SecureHash.h:86
CORE_API FMD5()
Definition SecureHash.cpp:120
CORE_API void Final(uint8 *digest)
Definition SecureHash.cpp:170
CORE_API void Update(const uint8 *input, uint64 inputLen)
Definition SecureHash.cpp:135
Definition MemoryImageWriter.h:14
Definition MemoryImageWriter.h:78
Definition MemoryImage.h:49
Definition SecureHash.h:314
@ DigestSize
Definition SecureHash.h:317
static CORE_API void HMACBuffer(const void *Key, uint32 KeySize, const void *Data, uint64 DataSize, uint8 *OutHash)
Definition SecureHash.cpp:1290
static CORE_API void HashBuffer(const void *Data, uint64 DataSize, uint8 *OutHash)
Definition SecureHash.cpp:1281
FSHAHash Finalize()
Definition SecureHash.h:348
uint32 __reserved1[1]
Definition SecureHash.h:324
CORE_API FSHA1()
Definition SecureHash.cpp:684
CORE_API ~FSHA1()
Definition SecureHash.cpp:689
CORE_API void UpdateWithString(const TCHAR *data, uint32 len)
Definition SecureHash.cpp:1240
uint64 m_count
Definition SecureHash.h:323
uint32 m_state[5]
Definition SecureHash.h:322
static FSHAHash HashBuffer(const void *Data, uint64 DataSize)
Definition SecureHash.h:375
CORE_API void Reset()
Definition SecureHash.cpp:694
uint8 m_buffer[64]
Definition SecureHash.h:325
static CORE_API void InitializeFileHashesFromBuffer(uint8 *Buffer, uint64 BufferSize, bool bDuplicateKeyMemory=false)
Definition SecureHash.cpp:1353
CORE_API void GetHash(uint8 *puDest) const
Definition SecureHash.cpp:1269
void Update(const Type &InData)
Definition SecureHash.h:339
static CORE_API bool GetFileSHAHash(const TCHAR *Pathname, uint8 Hash[20], bool bIsFullPackageHash=true)
Definition SecureHash.cpp:1417
uint8 m_digest[20]
Definition SecureHash.h:326
uint32 __reserved2[3]
Definition SecureHash.h:327
CORE_API void Final()
Definition SecureHash.cpp:1245
Definition SecureHash.h:226
friend uint32 GetTypeHash(const FSHAHash &InKey)
Definition SecureHash.h:290
friend FCbWriter & operator<<(FCbWriter &Writer, const FSHAHash &InHash)
Definition SecureHash.h:299
FString ToString() const
Definition SecureHash.h:242
friend FArchive & operator<<(FArchive &Ar, FSHAHash &G)
Definition SecureHash.h:284
void FromString(const FStringView &Src)
Definition SecureHash.h:263
friend FStringBuilderBase & operator<<(FStringBuilderBase &Builder, const FSHAHash &InHash)
Definition SecureHash.h:297
void ToString(TCHAR *Dest, bool bNullTerminate) const
Definition SecureHash.h:247
static constexpr int32 GetStringLen()
Definition SecureHash.h:235
friend bool operator<(const FSHAHash &X, const FSHAHash &Y)
Definition SecureHash.h:279
friend FString LexToString(const FSHAHash &InHash)
Definition SecureHash.h:295
friend bool operator==(const FSHAHash &X, const FSHAHash &Y)
Definition SecureHash.h:269
friend bool operator!=(const FSHAHash &X, const FSHAHash &Y)
Definition SecureHash.h:274
FSHAHash()
Definition SecureHash.h:230
friend bool LoadFromCompactBinary(const FCbFieldView &Field, FSHAHash &OutHash)
Definition SecureHash.h:300
uint8 Hash[20]
Definition SecureHash.h:228
friend void LexFromString(FSHAHash &InHash, const TCHAR *InString)
Definition SecureHash.h:296
void AppendString(FString &Out) const
Definition SecureHash.h:237
friend FAnsiStringBuilderBase & operator<<(FAnsiStringBuilderBase &Builder, const FSHAHash &InHash)
Definition SecureHash.h:298
CORE_API FCbWriter & WriteCompactBinary(FCbWriter &Writer) const
Definition SecureHash.cpp:673
Definition UnrealString.h.inl:34
constexpr int32 Len() const
Definition StringView.h:174
Definition FieldSystemNoiseAlgo.cpp:6
UE_NODEBUG void IntrinsicToString(const TArray< T, AllocatorType > &Object, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FMemoryToStringContext &OutContext)
Definition Array.h:3983
void BytesToHex(TConstArrayView< uint8 > Bytes, ANSICHAR *OutHex)
Definition BytesToHex.cpp:27
int32 HexToBytes(FWideStringView Hex, uint8 *OutBytes)
Definition HexToBytes.cpp:30
@ false
Definition radaudio_common.h:23
Definition SecureHash.h:133
static CORE_API FMD5Hash HashFile(const TCHAR *InFilename, TArray< uint8 > *Buffer=nullptr)
Definition SecureHash.cpp:563
const uint8 * GetBytes() const
Definition SecureHash.h:175
const int32 GetSize() const
Definition SecureHash.h:176
friend bool operator!=(const FMD5Hash &LHS, const FMD5Hash &RHS)
Definition SecureHash.h:154
friend FArchive & operator<<(FArchive &Ar, FMD5Hash &Hash)
Definition SecureHash.h:160
friend bool operator==(const FMD5Hash &LHS, const FMD5Hash &RHS)
Definition SecureHash.h:148
bool IsValid() const
Definition SecureHash.h:138
void Set(FMD5 &MD5)
Definition SecureHash.h:141
friend void LexFromString(FMD5Hash &Hash, const TCHAR *InString)
Definition SecureHash.h:191
static CORE_API FMD5Hash HashFileFromArchive(FArchive *Ar, TArray< uint8 > *ScratchPad=nullptr)
Definition SecureHash.cpp:572
friend bool LoadFromCompactBinary(const FCbFieldView &Field, FMD5Hash &OutHash)
Definition SecureHash.h:189
FMD5Hash()
Definition SecureHash.h:135
friend FCbWriter & operator<<(FCbWriter &Writer, const FMD5Hash &Hash)
Definition SecureHash.h:185
friend FString LexToString(const FMD5Hash &InHash)
Definition SecureHash.h:190
Definition MemoryLayout.h:51
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
static UE_FORCEINLINE_HINT void * Memset(void *Dest, uint8 Char, SIZE_T Count)
Definition UnrealMemory.h:119
Definition MemoryLayout.h:108
static int32 Strlen(const CharType *String)
Definition CString.h:1047
Definition LightweightStats.h:416