From 04c62c4959d99ed3a8d350464db64aac6db1ec5f Mon Sep 17 00:00:00 2001
From: Tom
Date: Wed, 26 Jan 2011 12:54:12 -0800
Subject: Revert my previous SHA1 commit in favour of a better implementation

---
 OpenSim/Framework/Util.cs                                    | 12 +++++++++---
 .../Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs |  4 +---
 2 files changed, 10 insertions(+), 6 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 9227708..96292ff 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -435,16 +435,22 @@ namespace OpenSim.Framework
         /// </summary>
         /// <param name="data"></param>
         /// <returns></returns>
+
         public static string SHA1Hash(string data)
         {
-            byte[] hash = ComputeSHA1Hash(data);
+            return SHA1Hash(data, Encoding.Default);
+        }
+
+        public static string SHA1Hash(string data, Encoding encoding)
+        {
+            byte[] hash = ComputeSHA1Hash(data, encoding);
             return BitConverter.ToString(hash).Replace("-", String.Empty);
         }
 
-        private static byte[] ComputeSHA1Hash(string src)
+        private static byte[] ComputeSHA1Hash(string src, Encoding encoding)
         {
             SHA1CryptoServiceProvider SHA1 = new SHA1CryptoServiceProvider();
-            return SHA1.ComputeHash(Encoding.Default.GetBytes(src));
+            return SHA1.ComputeHash(encoding.GetBytes(src));
         }
 
         public static int fast_distance2d(int x, int y)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 45af13a..f5b7f5f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -32,7 +32,6 @@ using System.Diagnostics; //for [DebuggerNonUserCode]
 using System.Runtime.Remoting.Lifetime;
 using System.Text;
 using System.Threading;
-using System.Security.Cryptography;
 using System.Text.RegularExpressions;
 using Nini.Config;
 using log4net;
@@ -6945,8 +6944,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
         public LSL_String llSHA1String(string src)
         {
             m_host.AddScriptLPS(1);
-            SHA1CryptoServiceProvider SHA1 = new SHA1CryptoServiceProvider();
-            return BitConverter.ToString(SHA1.ComputeHash(Encoding.UTF8.GetBytes(src))).Replace("-", String.Empty).ToLower();
+            return Util.SHA1Hash(src, Encoding.UTF8).ToLower();
         }
 
         protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist)
-- 
cgit v1.1