Merge pull request #16 from AdilElFarissi/master

Basic implementation of AES encryption/decryption  and respective OSSL functions
This commit is contained in:
Ubit Umarov
2024-02-24 14:07:11 +00:00
committed by GitHub
5 changed files with 240 additions and 0 deletions

View File

@@ -6374,5 +6374,65 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return World.TryGetSceneObjectPart(id, out SceneObjectPart part) ? part.ParentGroup.GetSittingAvatarsCount() : 0;
}
public LSL_String osAESEncrypt(string secret, string plainText)
{
if(string.IsNullOrEmpty(secret) || string.IsNullOrEmpty(plainText))
return LSL_String.Empty;
LSL_String ret = Util.AESEncrypt(secret, plainText);
if(string.IsNullOrEmpty(ret)){
OSSLShoutError("osAESEncrypt: Failed to encrypt!");
return LSL_String.Empty;
}else
{
return ret;
}
}
public LSL_String osAESDecrypt(string secret, string encryptedText)
{
if(string.IsNullOrEmpty(secret) || string.IsNullOrEmpty(encryptedText))
return LSL_String.Empty;
LSL_String ret = Util.AESDecrypt(secret, encryptedText);
if(string.IsNullOrEmpty(ret)){
OSSLShoutError("osAESDecrypt: Failed to Decrypt!");
return LSL_String.Empty;
}else
{
return ret;
}
}
public LSL_String osAESEncryptTo(string secret, string plainText, string ivString)
{
if(string.IsNullOrEmpty(secret) || string.IsNullOrEmpty(plainText) || string.IsNullOrEmpty(ivString))
return LSL_String.Empty;
LSL_String ret = Util.AESEncryptTo(secret, plainText, ivString);
if(string.IsNullOrEmpty(ret)){
OSSLShoutError("osAESEncryptTo: Failed to encrypt!");
return LSL_String.Empty;
}else
{
return ret;
}
}
public LSL_String osAESDecryptFrom(string secret, string encryptedText, string ivString)
{
if(string.IsNullOrEmpty(secret) || string.IsNullOrEmpty(encryptedText) || string.IsNullOrEmpty(ivString))
return LSL_String.Empty;
LSL_String ret = Util.AESDecryptFrom(secret, encryptedText, ivString);
if(string.IsNullOrEmpty(ret)){
OSSLShoutError("osAESDecryptFrom: Failed to decrypt!");
return LSL_String.Empty;
}else
{
return ret;
}
}
}
}

View File

@@ -617,5 +617,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
LSL_Integer osGetPrimCount(LSL_Key object_id);
LSL_Integer osGetSittingAvatarsCount();
LSL_Integer osGetSittingAvatarsCount(LSL_Key object_id);
LSL_String osAESEncrypt(string secret, string plainText);
LSL_String osAESEncryptTo(string secret, string plainText, string ivString);
LSL_String osAESDecrypt(string secret, string encryptedText);
LSL_String osAESDecryptFrom(string secret, string encryptedText, string ivString);
}
}

View File

@@ -1750,5 +1750,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_OSSL_Functions.osGetSittingAvatarsCount(object_id);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public LSL_String osAESEncrypt(string secret, string plainText)
{
return m_OSSL_Functions.osAESEncrypt(secret, plainText);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public LSL_String osAESEncryptTo(string secret, string plainText, string ivString)
{
return m_OSSL_Functions.osAESEncryptTo(secret, plainText, ivString);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public LSL_String osAESDecrypt(string secret, string encryptedText)
{
return m_OSSL_Functions.osAESDecrypt(secret, encryptedText);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public LSL_String osAESDecryptFrom(string secret, string encryptedText, string ivString)
{
return m_OSSL_Functions.osAESDecryptFrom(secret, encryptedText, ivString);
}
}
}