From ee243b8ad4be7f55821e375ded272984e13354ab Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 22 Oct 2022 13:42:17 +0100 Subject: [PATCH] add llSHA256String() same as osSHA256 --- .../ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 11 +++++++++++ .../ScriptEngine/Shared/Api/Interface/ILSL_Api.cs | 1 + .../ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 8c1a14a92d..a70914015f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -8248,6 +8248,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return Util.SHA1Hash(src, Encoding.UTF8).ToLower(); } + public LSL_String llSHA256String(LSL_String input) + { + // Create a SHA256 + using (SHA256 sha256Hash = SHA256.Create()) + { + // ComputeHash - returns byte array + byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(input)); + return Util.bytesToHexString(bytes, true); + } + } + protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, byte profileshape, byte pathcurve) { float tempFloat; // Use in float expressions below to avoid byte cast precision issues. diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs index d0514faf3b..70324cae8e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs @@ -274,6 +274,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at); LSL_String llMD5String(string src, int nonce); LSL_String llSHA1String(string src); + LSL_String llSHA256String(LSL_String src); void llMessageLinked(int linknum, int num, string str, string id); void llMinEventDelay(double delay); void llModifyLand(int action, int brush); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index 54a6947e05..8db3b7630d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs @@ -1158,6 +1158,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_LSL_Functions.llSHA1String(src); } + public LSL_String llSHA256String(LSL_String src) + { + return m_LSL_Functions.llSHA256String(src); + } + public void llMessageLinked(int linknum, int num, string str, string id) { m_LSL_Functions.llMessageLinked(linknum, num, str, id);