コード例 #1
0
ファイル: Security.cs プロジェクト: zhkuang/UnityDecompiled
        public static Assembly LoadAndVerifyAssembly(byte[] assemblyData, string authorizationKey)
        {
            RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();

            rSACryptoServiceProvider.FromXmlString("<RSAKeyValue><Modulus>uP7lsvrE6fNoQWhUIdJnQrgKoGXBkgWgs5l1xmS9gfyNkFSXgugIpfmN/0YrtL57PezYFXN0CogAnOpOtcUmpcIrh524VL/7bIh+jDUaOCG292PIx92dtzqCTvbUdCYUmaag9VlrdAw05FxYQJi2iZ/X6EiuO1TnqpVNFCDb6pXPAssoO4Uxn9JXBzL0muNRdcmFGRiLp7JQOL7a2aeU9mF9qjMprnww0k8COa6tHdnNWJqaxdFO+Etk3os0ns/gQ2FWrztKemM1Wfu7lk/B1F+V2g0adwlTiuyNHw6to+5VQXWK775RXB9wAGr8KhsVD5IJvmxrdBT8KVEWve+OXQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");
            bool flag = false;
            SHA1 sHA  = SHA1.Create();

            byte[] rgbHash      = sHA.ComputeHash(assemblyData);
            byte[] rgbSignature = Convert.FromBase64String(authorizationKey);
            try
            {
                flag = rSACryptoServiceProvider.VerifyHash(rgbHash, CryptoConfig.MapNameToOID("SHA1"), rgbSignature);
            }
            catch (CryptographicException)
            {
                Debug.LogError("Unable to verify that this assembly has been authorized by Unity.  The assembly will not be loaded.");
                flag = false;
            }
            if (!flag)
            {
                return(null);
            }
            return(Security.LoadAndVerifyAssemblyInternal(assemblyData));
        }
コード例 #2
0
ファイル: Security.cs プロジェクト: zhkuang/UnityDecompiled
 public static Assembly LoadAndVerifyAssembly(byte[] assemblyData)
 {
     if (Application.GetBuildUnityVersion() >= Application.GetNumericUnityVersion("4.5.0a4"))
     {
         Debug.LogError("Unable to verify assembly data; you must provide an authorization key when loading this assembly.");
         return(null);
     }
     return(Security.LoadAndVerifyAssemblyInternal(assemblyData));
 }