mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-24 01:30:14 +00:00
test : 修改资源清单加密解密测试用例
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user