3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/platform/Result.h"
8#include "mc/resources/AssetEncryptionMode.h"
9#include "mc/resources/DirectoryPackAccessStrategy.h"
10#include "mc/resources/PackAccessAssetGenerationResult.h"
11#include "mc/resources/PackAccessStrategyType.h"
22namespace Bedrock::Resources::Archive {
class Reader; }
23namespace Core {
class Path; }
27class EncryptedFileAccessStrategy :
public ::DirectoryPackAccessStrategy {
38 EncryptedFileAccessStrategy& operator=(EncryptedFileAccessStrategy
const&);
39 EncryptedFileAccessStrategy(EncryptedFileAccessStrategy
const&);
40 EncryptedFileAccessStrategy();
45 virtual ::PackAccessAssetGenerationResult generateAssetSet() ;
47 virtual bool isTrusted()
const ;
49 virtual bool isWritable()
const ;
51 virtual bool hasAsset(
::Core::PathView const& packRelativePath,
bool trustedContentOnly,
bool caseSensative)
const
55 getAsset(
::Core::PathView const& packRelativePath, ::std::string& result,
bool trustedContentOnly)
const
58 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(
::Core::Path const& subPath)
const ;
60 virtual bool isAssetExtractionViable()
const ;
62 virtual ::Bedrock::Result<::StreamableAssetSource>
63 getStreamableSource(
::Core::Path const& packRelativePath, ::std::optional<::Core::PathView> tempDirectory)
const
66 virtual ::PackAccessStrategyType getStrategyType()
const ;
68 virtual ::ContentIdentity readContentIdentity()
const ;
70 virtual ::std::string _getContentsFile();
72 virtual ::std::string _getRawContentsFile()
const;
74 virtual void _getEncryptedAssetStream(
::Core::PathView const& packRelativePath, ::std::string& result)
const;
76 virtual bool _getArchiveAssetFallback(
83 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
84 _loadArchive(
::Core::Path const& packRelativePath)
const ;
93 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
96 ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo>> assetSet
101 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
112 ::gsl::span<char const> input,
113 ::gsl::span<char> output,
114 ::std::string
const& key,
115 uint64& bytesWritten,
116 ::AssetEncryptionMode mode
120 ::std::string& stream,
121 ::std::string
const& key,
123 ::AssetEncryptionMode mode,
128 MCNAPI
static bool contentFileExists(
::Core::Path const& pathToPack);
140 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
143 ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo>> assetSet
165 MCNAPI ::Bedrock::Result<::StreamableAssetSource>
182 ::std::string& result
185 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
Definition ContentIdentity.h:8
MCAPI bool $isWritable() const
static MCAPI bool _transformStream(::std::string &stream, ::std::string const &key, ::ContentIdentity const &contentIdentity, ::AssetEncryptionMode mode, uint64 offset)
MCAPI::std::string _decryptContentsFile(::std::string contents)
MCAPI::std::string $_getRawContentsFile() const
MCAPI bool $isAssetExtractionViable() const
MCAPI ::Bedrock::Result<::StreamableAssetSource > $getStreamableSource(::Core::Path const &packRelativePath, ::std::optional<::Core::PathView > tempDirectory) const
MCAPI::std::string $_getContentsFile()
MCAPI bool $isTrusted() const
MCAPI::ContentIdentity $readContentIdentity() const
MCAPI void * $ctor(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::IPackIOProvider const &io, ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo > > assetSet)
MCAPI EncryptedFileAccessStrategy(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::IPackIOProvider const &io, ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo > > assetSet)
static MCAPI bool isValidEncryptedPack(::Core::Path const &pathToPack, ::ContentIdentity &contentIdentity)
static MCAPI bool _getContentIdentityFromEncryptedStream(::std::string &stream, ::ContentIdentity &contentIdentity)
MCAPI bool $hasAsset(::Core::PathView const &packRelativePath, bool trustedContentOnly, bool caseSensative) const
MCAPI void $_getEncryptedAssetStream(::Core::PathView const &packRelativePath, ::std::string &result) const
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > $_loadArchive(::Core::Path const &packRelativePath) const
MCAPI ::std::unique_ptr<::PackAccessStrategy > $createSubPack(::Core::Path const &subPath) const
static MCAPI void ** $vftable()
MCAPI::PackAccessStrategyType $getStrategyType() const
MCAPI bool $getAsset(::Core::PathView const &packRelativePath, ::std::string &result, bool trustedContentOnly) const
MCAPI::PackAccessAssetGenerationResult $generateAssetSet()
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > _loadArchive(::Core::PathView packRelativeArchiveFile, ::std::string const &key) const
MCAPI bool $_getArchiveAssetFallback(::Core::PathView const &packRelativePath, ::Core::PathView const &packRelativeArchivePath, ::EncryptedAssetInfo const &entryInfo, ::std::string &result) const
static MCAPI bool _transformStream(::gsl::span< char const > input, ::gsl::span< char > output, ::std::string const &key, uint64 &bytesWritten, ::AssetEncryptionMode mode)
Definition IContentKeyProvider.h:13
Definition IPackIOProvider.h:19
Definition PackAccessStrategy.h:25
Definition ResourceLocation.h:15
Definition EncryptedAssetInfo.h:5
Definition StreamableAssetSource.h:5