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

View File

@@ -6,24 +6,31 @@ using UnityEngine;
using NUnit.Framework; using NUnit.Framework;
using YooAsset; using YooAsset;
public class TestProcessManifest : IManifestServices public class TestProcessManifest : IManifestProcessServices
{ {
public byte[] ProcessManifest(byte[] fileData) byte[] IManifestProcessServices.ProcessManifest(byte[] fileData)
{ {
return XorProcess(fileData, "YOO"); return XorCrypto.Crypto(fileData, "YOO");
}
public byte[] RestoreManifest(byte[] fileData)
{
return XorProcess(fileData, "YOO");
} }
}
public class TestRestoreManifest : IManifestRestoreServices
{
byte[] IManifestRestoreServices.RestoreManifest(byte[] fileData)
{
return XorCrypto.Crypto(fileData, "YOO");
}
}
public class XorCrypto
{
/// <summary> /// <summary>
/// 使用异或加密/解密字节数组 /// 使用异或加密/解密字节数组
/// </summary> /// </summary>
/// <param name="data">输入数据</param> /// <param name="data">输入数据</param>
/// <param name="key">加密密钥</param> /// <param name="key">加密密钥</param>
/// <returns>处理后的字节数组</returns> /// <returns>处理后的字节数组</returns>
public static byte[] XorProcess(byte[] data, byte[] key) public static byte[] Crypto(byte[] data, byte[] key)
{ {
if (data == null) if (data == null)
throw new ArgumentNullException(nameof(data)); throw new ArgumentNullException(nameof(data));
@@ -47,9 +54,9 @@ public class TestProcessManifest : IManifestServices
/// <param name="data">输入数据</param> /// <param name="data">输入数据</param>
/// <param name="key">字符串密钥</param> /// <param name="key">字符串密钥</param>
/// <returns>处理后的字节数组</returns> /// <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); 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 initParams = new OfflinePlayModeParameters();
var fileDecryption = new TestFileStreamDecryption(); var fileDecryption = new TestFileStreamDecryption();
var manifestProcess = new TestProcessManifest(); var manifestServices = new TestRestoreManifest();
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(fileDecryption, packageRoot); initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(fileDecryption, packageRoot);
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_CATALOG_FILE, true); 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); var initializeOp = package.InitializeAsync(initParams);
yield return initializeOp; yield return initializeOp;
if (initializeOp.Status != EOperationStatus.Succeed) if (initializeOp.Status != EOperationStatus.Succeed)

View File

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