Commit Graph

5630 Commits

Author SHA1 Message Date
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
UbitUmarov
f21aca428f do not auto set reflection_probe_ambiance on old skies, so a viewer can decide to fix for pbr (ofc seems tha currently they just set it 0 and do nothing showing broke skies in same cases); a few changes on notecards uuid detection 2024-01-10 13:30:14 +00:00
UbitUmarov
10cdd17d27 cosmetics on LogWriter 2024-01-02 23:07:12 +00:00
UbitUmarov
23daf5340b add some missing matovr full updates 2023-12-12 21:15:58 +00:00
UbitUmarov
1d27845e2a a few changes to materials upload to inventory 2023-12-06 21:54:53 +00:00
UbitUmarov
cd4c009e64 a few changes to materials 2023-12-06 19:39:49 +00:00
UbitUmarov
cbdcf3b4a0 more changes on the test feature 2023-12-02 16:29:58 +00:00
UbitUmarov
602569e5f7 try to match viewer protocol changes on test feature 2023-12-01 23:32:25 +00:00
UbitUmarov
79ac5c7f54 remove some obsolete code 2023-11-29 12:17:08 +00:00
UbitUmarov
f94f6e77bf a few cosmetic changes 2023-11-12 22:24:53 +00:00
UbitUmarov
6acba7a4bc update test 2023-08-26 02:19:29 +01:00
UbitUmarov
bbe6075aa0 add lsl constant PRIM_SCULPT_FLAG_ANIMESH and change a few things about it 2023-08-08 18:45:49 +01:00
UbitUmarov
e08047b6a9 update number of estate managers to 15 2023-08-04 20:53:44 +01:00
UbitUmarov
3ec3f69e58 ooops bad turn, fix it 2023-06-23 01:21:04 +01:00
UbitUmarov
5e627f909b avoid prims sort on FindNextAvailableSitTarget 2023-06-22 16:09:07 +01:00
UbitUmarov
22e8d0022f AgentCircuitManager: go back to use of normal dictionaries and lock() 2023-06-22 13:50:19 +01:00
UbitUmarov
182bf163fb anaother typo on log string, ty Tampa 2023-05-31 19:28:37 +01:00
UbitUmarov
e950c502ad change share of almost empty class httpclient, to just share of used SocketsHttpHandler, This simpifies handling of timeout, otherwise problematic 2023-05-26 20:27:24 +01:00
UbitUmarov
5e0c6446d8 update xmlrpc.dll with a send variant using httpclint and used it 2023-05-24 13:42:56 +01:00
UbitUmarov
6743934434 cosmetics 2023-05-21 20:46:54 +01:00
UbitUmarov
b4d6bb35b7 cosmetics on restclient 2023-05-18 17:48:48 +01:00
UbitUmarov
73ca50bbbc change default httpclients MaxResponseContentBufferSize 2023-05-18 17:47:39 +01:00
UbitUmarov
3882ef3eb0 more on HttpWebRequest in userprofiles 2023-05-18 14:25:09 +01:00
UbitUmarov
f3663371dc more on HttpWebRequest 2023-05-17 21:17:36 +01:00
UbitUmarov
6dbc498677 clean up restclient a bit more 2023-05-17 20:36:11 +01:00
UbitUmarov
beeb5b54be replace HttpWebRequest by HttpClient on other places 2023-05-17 19:15:46 +01:00
UbitUmarov
ec2f81dd07 clean up dead async code from restclient, was not in use and naw a obsolete way of doing it 2023-05-17 17:24:53 +01:00
UbitUmarov
36fc05a3c1 replace HttpWebRequest by HttpClient on restclient 2023-05-17 17:15:13 +01:00
UbitUmarov
29049c14b2 replace HttpWebRequest by HttpClient on another place, used bt assets, etc 2023-05-17 01:10:02 +01:00
UbitUmarov
19229aff64 replace HttpWebRequest by HttpClient on another place 2023-05-16 22:57:23 +01:00
UbitUmarov
7860e2d861 cosmetics 2023-05-13 16:39:14 +01:00
UbitUmarov
7dbedecd88 add LSL llLinear2sRGB and llsRGB2Linear 2023-04-28 01:55:35 +01:00
UbitUmarov
cfbeb88823 cosmetics 2023-04-25 23:53:26 +01:00