Commit Graph

5562 Commits

Author SHA1 Message Date
Adil El Farissi
3bcc96e42d Merge branch 'opensim:master' into master 2024-06-13 22:21:39 +00:00
UbitUmarov
65738b3766 a few more changes for hypothetical terrain PBR 2024-06-10 21:02:31 +01:00
UbitUmarov
54fe5747ea add storage for pbr terrain feature that viewers for opensim may add 2024-06-08 21:58:46 +01:00
Adil El Farissi
6ab23c8d6b Merge branch 'opensim:master' into master 2024-06-07 21:03:53 +00:00
UbitUmarov
30586b34f6 replace Util.Clamp<T>() 2024-06-04 09:01:10 +01:00
UbitUmarov
57c1e15428 use hash.HashData() and other cosmetics 2024-05-10 13:05:50 +01:00
UbitUmarov
1736b6a8a0 make some use of frozendicionaries on xml processors 2024-05-08 19:14:32 +01:00
UbitUmarov
5330c8fcca mantis 9127 add missing linksetdata serializer 2024-05-08 18:01:38 +01:00
UbitUmarov
034cf66dfe replace beginaccept 2024-04-28 10:58:27 +01:00
UbitUmarov
943ea29419 missing c&p 2024-04-27 17:06:07 +01:00
UbitUmarov
620859c10e replace stream.beginread 2024-04-27 17:03:52 +01:00
UbitUmarov
8e6eeb1931 let the socketAddress cache be global 2024-04-27 15:47:33 +01:00
AdilElFarissi
3c6a8f8d7c Merge branch 'opensim:master' into master 2024-04-26 05:49:42 +00:00
UbitUmarov
ffb4cd7867 cosmetics 2024-04-24 00:07:26 +01:00
UbitUmarov
257a9ad398 libomv now knows old opensim material asset type + dotnet8 usless changes 2024-04-21 13:44:35 +01:00
UbitUmarov
f447a58ac9 cosmetics 2024-04-18 13:27:31 +01:00
UbitUmarov
c8adcb66d0 oops fix bad paste on SLUtil.cs 2024-04-16 23:20:59 +01:00
AdilElFarissi
ab44f8ee07 Merge branch 'opensim:master' into master 2024-04-16 21:26:51 +00:00
UbitUmarov
b9eb6bdd76 dictionary.try and other cosmetics 2024-04-16 18:01:06 +01:00
UbitUmarov
92bf9224de fix materials simulator features 2024-04-15 01:30:36 +01:00
UbitUmarov
ca69544ae9 update simulator features (max texture 1024px) 2024-04-15 00:43:04 +01:00
AdilElFarissi
af5ad4a43c Merge branch 'opensim:master' into master 2024-04-13 05:44:53 +00:00
UbitUmarov
25dcfa8b4e change llAtan2 arguments order to (y,x) to match standard documentation 2024-04-12 22:14:54 +01:00
UbitUmarov
36f95e0167 change NoVerifyCertChain and NoVerifyCertHostname default to true, as stated on ini files 2024-04-12 21:03:03 +01:00
AdilElFarissi
dafc02ac80 Merge branch 'opensim:master' into master 2024-04-09 02:35:18 +00:00
UbitUmarov
5207b251c3 a few more useless changes 2024-04-08 21:43:03 +01:00
AdilElFarissi
efda155791 Merge branch 'opensim:master' into master 2024-04-08 07:17:51 +00:00
UbitUmarov
44b0d30561 a few more useless changes 2024-04-08 02:02:54 +01:00
UbitUmarov
f1cb40aa59 a few more useless changes 2024-04-07 22:26:51 +01:00
UbitUmarov
91d9c33128 replace some more wrong uses of dictionary containskey and other cosmetics 2024-04-07 20:28:56 +01:00
UbitUmarov
9b878933eb oops missing dependency 2024-04-04 17:49:07 +01:00
UbitUmarov
d00dbe11c0 set gc memory high pressure to 50% of total memory (sadly it may decide to ignore); change show stats memory report; let robust also show memory on show stats 2024-04-04 17:45:38 +01:00
UbitUmarov
58401238d5 reduce min size of header buffers to limit impact when osutf8 cache is empty 2024-04-02 01:27:16 +01:00
UbitUmarov
6c83782d49 cosmetics 2024-04-02 01:03:34 +01:00
UbitUmarov
54d2403252 cosmetics 2024-04-02 00:14:04 +01:00
UbitUmarov
1891b962dc cosmetics 2024-04-01 21:53:32 +01:00
UbitUmarov
723a528b58 refuse some chars on HG url region name 2024-03-30 23:22:30 +00:00
AdilElFarissi
7ddf60ad9f Merge branch 'opensim:master' into master 2024-03-29 03:52:41 +00:00
UbitUmarov
e918888e30 add llGetCameraAspect and llGetCameraFOV 2024-03-28 15:34:03 +00:00
Adil El Farissi
681baf65f1 Basic implementation of SSL selfsigned certificates creation and renewal
Allows selfsigned certificates creation and renewal for local and external use. When enabled, will create a folder SSL\ and 2 sub folders SSL\ssl\ and SSL\src\. Next creates and store an RSA private key in SSL\src\ and the derived selfsigned certificates in SSL\ssl\ folder. Is also possible to renew the certificate on every server restart if CertRenewOnStartup is set to true.

Note: The SSL related params in the network section was adapted to be user friendly and allow the usage just by uncommenting the SSL params in both sections and a password change.
2024-03-20 01:12:49 +00:00
AdilElFarissi
3542d5461b Merge branch 'opensim:master' into master 2024-03-19 21:50:59 +00:00
UbitUmarov
b70b5c07e3 revert to append all contents of .version file on the full version, if present and not empty 2024-03-11 00:18:05 +00:00
UbitUmarov
6905f1a71a cosmetics 2024-03-10 16:56:12 +00:00
Adil El Farissi
df8fe33007 Last cosmetics and PHP/LSL test scripts
All is working fine :)

The following script send a request to the PHP file where the encrypted  string using osAESEncrypt() is decrypted and re-encrypted using the PHP openssl_XXXX. the return is the original string and the re-encrypted separated by "|"... the script decrypt the returned re-encrypted using osAESDecrypt() and log it in the chat.

LSL script:
<pre><code>
// Change the url to point to your PHP file.
string url =  "http://127.0.0.1/aesTest.php";
string plainText = "Hello World :)";
string secret = "#!qUeRtY$@123^456€!#";
key r_id;

default
{
    touch_start(integer i)
    {
        string encryptedText = osAESEncrypt(secret, plainText);
        llOwnerSay("\nEncrypted with osAESEncrypt:\n"+ encryptedText);

        r_id = llHTTPRequest(url, [HTTP_METHOD,"POST",HTTP_MIMETYPE,"application/x-www-form-urlencoded",HTTP_BODY_MAXLENGTH,"16384"], "data="+ encryptedText);
    }

    http_response(key id, integer status, list metaData, string Response){
        if(status = 200 ){
            if(id == r_id){
                if(Response != ""){
                    list temp = llParseString2List(Response,"|",[]);
                    llOwnerSay("\nDecrypted using PHP openssl_decrypt:\n"+ llList2String(temp,0));
                    llOwnerSay("\nEncrypted using PHP openssl_encrypt:\n"+ llList2String(temp,1));
                    string decryptedText = osAESDecrypt(secret, llList2String(temp,1));
                    llOwnerSay("\nDecrypted with osAESDecrypt from PHP:\n"+ decryptedText);
                }
                else{
                    llOwnerSay("Enc/Dec Failed! Response:\n"+ Response);
                }
            }
        }
        else{
             llOwnerSay("Destination not available.\nstatus: "+ status);
        }
    }
}
</code></pre>

The PHP file:
<pre><code>
<?php
    if(getenv('REQUEST_METHOD') == 'POST') {
	    $script_data = file_get_contents("php://input");
        if($script_data){
            $data = $_POST['data'];
            $secret = "#!qUeRtY$@123^456€!#";
            $key = hex2bin(strtoupper(hash('sha256', $secret)));
            $iv = hex2bin(strtoupper(explode(":", $data)[0]));
            $encryptedText = hex2bin(strtoupper(explode(":", $data)[1]));
            $plainText = openssl_decrypt($encryptedText, "AES-256-CBC", $key, $options=OPENSSL_RAW_DATA, $iv);
            $retIv = openssl_random_pseudo_bytes(16);
            $reEncrypted = openssl_encrypt($plainText, "AES-256-CBC", $key, $options=OPENSSL_RAW_DATA, $retIv);

            echo $plainText && $reEncrypted ? $plainText."|".bin2hex($retIv).":".bin2hex($reEncrypted) : "";

        }
    };
?>
</code></pre>

Co-Authored-By: Ubit Umarov <469643+UbitUmarov@users.noreply.github.com>
2024-02-29 01:09:20 +00:00
UbitUmarov
ab4b690ffd fis AES encoding 2024-02-27 20:21:35 +00:00
UbitUmarov
eb9afdaffc break them a bit more... 2024-02-24 15:47:06 +00:00
UbitUmarov
121f270414 a few changes to last PR (aes methods) - all still untested 2024-02-24 14:50:54 +00:00
Adil El Farissi
db80781e7d Basic implementation of AES encryption/decryption and respective OSSL functions
Add methods:
+ private static string AESEncryptString(string secret, string plainText, string ivString= null)
AES Encrypt a string using a password and a random or custom Initialization Vector.

+ private static string AESDecryptString(string secret, string encryptedText, string ivString= null)
AES Decrypt the string encrypted by AESEncryptString with the same password and ivString used in the encryption.

Methods implementations:
+ Util.AESEncrypt(string secret, string plainText)
+ Util.AESDecrypt(string secret, string encryptedText)
+Util.AESEncryptTo(string secret, string plainText, string ivString)
+ Util.AESDecryptFrom(string secret, string encryptedText, string ivString)

OSSL functions as first case of use:
+ osAESEncrypt(string secret, string plainText)
+ osAESDecrypt(string secret, string encryptedText)
+ osAESEncryptTo(string secret, string plainText, string ivString)
+ osAESDecryptFrom(string secret, string encryptedText, string ivString)

LSL script example:
<pre><code>
string plainText = "Hello World :)";
string secret = "#!qUeRtY$@123^456€!#";

default
{
    touch_start(integer i)
    {
        string encryptedText = osAESEncrypt(secret, plainText);
        llOwnerSay("\nEncrypted with osAESEncrypt:\n"+ encryptedText);
        string decryptedText = osAESDecrypt(secret, encryptedText);
        llOwnerSay("\nDecrypted with osAESDecrypt:\n"+ decryptedText);

        // Encription / Decription with custom Initialization Vector.
        string ivString = (string)llGetOwner() /* +"_"+ llGenerateKey() */;
        string encryptedToText = osAESEncryptTo(secret, plainText, ivString);
        llOwnerSay("\nEncrypted with osAESEncryptTo:\n"+ encryptedToText);
        string decryptedFromText = osAESDecryptFrom(secret, encryptedToText, ivString);
        llOwnerSay("\nDecrypted with osAESDecryptFrom:\n"+ decryptedFromText);
    }
}
</code></pre>

Web Rain :)
2024-02-23 21:14:33 +00:00
UbitUmarov
f1cba63aad retire StringToBytes variants with string format. Do the format before calling.. 2024-02-05 18:34:44 +00:00
UbitUmarov
db04234685 update libomv 2024-02-05 18:07:57 +00:00