test : 修改资源清单加密解密测试用例

This commit is contained in:
何冠峰
2025-07-23 15:41:57 +08:00
parent 43c5c7fb53
commit a4c7d4b8f5
5 changed files with 25 additions and 16 deletions

View File

@@ -72,7 +72,8 @@ public static class TestPackageBuilder
buildParameters.UseAssetDependencyDB = true;
buildParameters.BuiltinShadersBundleName = builtinShaderBundleName;
buildParameters.EncryptionServices = new TestFileStreamEncryption();
buildParameters.ManifestServices = new TestProcessManifest();
buildParameters.ManifestProcessServices = new TestProcessManifest();
buildParameters.ManifestRestoreServices = new TestRestoreManifest();
var pipeline = new ScriptableBuildPipeline();
BuildResult buildResult = pipeline.Run(buildParameters, false);
@@ -110,7 +111,8 @@ public static class TestPackageBuilder
buildParameters.ClearBuildCacheFiles = true;
buildParameters.UseAssetDependencyDB = true;
buildParameters.EncryptionServices = new TestFileStreamEncryption();
buildParameters.ManifestServices = new TestProcessManifest();
buildParameters.ManifestProcessServices = new TestProcessManifest();
buildParameters.ManifestRestoreServices = new TestRestoreManifest();
var pipeline = new BuiltinBuildPipeline();
BuildResult buildResult = pipeline.Run(buildParameters, false);

View File

@@ -6,24 +6,31 @@ using UnityEngine;
using NUnit.Framework;
using YooAsset;
public class TestProcessManifest : IManifestServices
public class TestProcessManifest : IManifestProcessServices
{
public byte[] ProcessManifest(byte[] fileData)
byte[] IManifestProcessServices.ProcessManifest(byte[] fileData)
{
return XorProcess(fileData, "YOO");
}
public byte[] RestoreManifest(byte[] fileData)
{
return XorProcess(fileData, "YOO");
return XorCrypto.Crypto(fileData, "YOO");
}
}
public class TestRestoreManifest : IManifestRestoreServices
{
byte[] IManifestRestoreServices.RestoreManifest(byte[] fileData)
{
return XorCrypto.Crypto(fileData, "YOO");
}
}
public class XorCrypto
{
/// <summary>
/// 使用异或加密/解密字节数组
/// </summary>
/// <param name="data">输入数据</param>
/// <param name="key">加密密钥</param>
/// <returns>处理后的字节数组</returns>
public static byte[] XorProcess(byte[] data, byte[] key)
public static byte[] Crypto(byte[] data, byte[] key)
{
if (data == null)
throw new ArgumentNullException(nameof(data));
@@ -47,9 +54,9 @@ public class TestProcessManifest : IManifestServices
/// <param name="data">输入数据</param>
/// <param name="key">字符串密钥</param>
/// <returns>处理后的字节数组</returns>
public static byte[] XorProcess(byte[] data, string key)
public static byte[] Crypto(byte[] data, string key)
{
byte[] keyBytes = System.Text.Encoding.UTF8.GetBytes(key);
return XorProcess(data, keyBytes);
return Crypto(data, keyBytes);
}
}

View File

@@ -61,10 +61,10 @@ public class T2_TestBuldinFileSystem : IPrebuildSetup, IPostBuildCleanup
// 初始化资源包
var initParams = new OfflinePlayModeParameters();
var fileDecryption = new TestFileStreamDecryption();
var manifestProcess = new TestProcessManifest();
var manifestServices = new TestRestoreManifest();
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(fileDecryption, packageRoot);
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_CATALOG_FILE, true);
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestProcess);
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestServices);
var initializeOp = package.InitializeAsync(initParams);
yield return initializeOp;
if (initializeOp.Status != EOperationStatus.Succeed)

View File

@@ -46,13 +46,13 @@ public class T3_TestCacheFileSystem : IPrebuildSetup, IPostBuildCleanup
// 初始化资源包
var initParams = new HostPlayModeParameters();
var fileDecryption = new TestFileStreamDecryption();
var manifestProcess = new TestProcessManifest();
var manifestServices = new TestRestoreManifest();
string hostServerIP = "http://127.0.0.1/CDN/Android/Test/";
var remoteServices = new TestRemoteServices(hostServerIP);
initParams.BuildinFileSystemParameters = null;
initParams.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices, fileDecryption);
initParams.CacheFileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestProcess);
initParams.CacheFileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestServices);
var initializeOp = package.InitializeAsync(initParams);
yield return initializeOp;
if (initializeOp.Status != EOperationStatus.Succeed)