Decrypt .NET

Get help with using the PHP Secure Communications Library.

Moderator: Nuxius

Forum rules
The purpose of this forum is to provide support for phpseclib, a pure PHP SSH / SFTP / RSA library.

Posts by new users are held in a moderation queue and are not publicly visible until the post is approved.

Re: Decrypt .NET

Postby TerraFrost » Mon Jul 18, 2011 9:45 pm

That would make sense. Technically, an RSA public key is indistinguishable from a private key. A private key may be distinguishable from a public key but not the other way around. All you need, technically, to encrypt or decrypt, is a modulo and an exponent. Any other chinese remainder stuff is completely optional.

So if you load the private key that'll be used for encryption and decryption operations. To decrypt something encrypted with the private key you'd need to load the public key.
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Mon Aug 26, 2013 6:37 am

thank terra for this your replays

i try to encrypt text in my c# application and your script doing well decrypting it, but i try to encrypt text using your script and decrypt it again i face an error also when i get that encrypted text generated from your script to decrypt it in my c# application an exp thrown

how to fix it ?
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Tue Aug 27, 2013 2:25 pm

It'd be helpful if I was able to see your code. In lieu of that... assuming you're using PKCS1 encryption mode (which it sounds like you are) you may need to do this:

Code: Select all
define('CRYPT_RSA_PKCS15_COMPAT', true);


This is kinda mentioned here (private_encrypt() / public_decrypt(), phpseclib encryption example):

http://phpseclib.sourceforge.net/interop.html#

The comments right above that define() elaborate:

Code: Select all
// phpseclib implements PKCS#1 v2.1 which is largely compatible with
// PKCS#1 v1.5 (which is what OpenSSL implements) save for instances
// where the private key is being used to encrypt.
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Tue Aug 27, 2013 5:29 pm

c# can't decrypt php encrypted data

php code
Code: Select all
 <?php
    include('Crypt/RSA.php');
include('Math/BigInteger.php');
define('CRYPT_RSA_PKCS15_COMPAT', true);

$publickey = '<RSAKeyValue><Modulus>qBrA2sWTvLIupgKAZV5b2uMGBuxOKQNM/C8oGP82DvuyAo6M02NwoxZ+hBSYH8h/ZYp5do6ynGdEidxGfEiBJL3zj/CR6crX6EAho7k/sE4gssT+z4Gr74jY3IGLNQmpyUoU9qPAtyzQDyBTRb5su3BQVzJExEfOtxmSfrr+94c=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>';

$xml = new DOMDocument();
$xml->loadXML($publickey);

$modulus = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Modulus')->item(0)->nodeValue), 256);
$exponent = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Exponent')->item(0)->nodeValue), 256);

$privatekey = '<RSAKeyValue><Modulus>qBrA2sWTvLIupgKAZV5b2uMGBuxOKQNM/C8oGP82DvuyAo6M02NwoxZ+hBSYH8h/ZYp5do6ynGdEidxGfEiBJL3zj/CR6crX6EAho7k/sE4gssT+z4Gr74jY3IGLNQmpyUoU9qPAtyzQDyBTRb5su3BQVzJExEfOtxmSfrr+94c=</Modulus><Exponent>AQAB</Exponent><P>0rKSsKPBU/AI/BIxWH15izMIDSq/siDeUIRGmm3mQbMp+FRVk03MrMNgrx19ygTqNBwn+RXwNDksxBR/+Oh30Q==</P><Q>zD+7IWCGOsLvD2G2nEeEqNV0UPSHbxr1PM3zd+3UBBestdQrPQMBn1R+axPXZbG9p0GrL/V8Zzpu/lQDr0mn1w==</Q><DP>L5jhpH/Jy8F89hzSAvCNhZGorvjKR14/eqb3ICnVi2ADCjNbBaTcqOaWL9kUso97rPvzV8TJ97I217Dd3AgAEQ==</DP><DQ>SN/ITa1Z1ydsEknj1LizvWWDfcrxc5PjwhEdeEHT7q3fwnR0BO3Iq2eDP4MxzCfxqfaFNLRa8Z3osjeZpPYbuw==</DQ><InverseQ>SkEIO0RsafwrmOqMBp18jnAVpPVez7JWY//z/lW0aR4Mx40b7SMoEZoV+kcD/q1zeQM1iIe/pJqWFKwGSNg8dw==</InverseQ><D>C5thSWLhJCxVGczej2E8ufgdoH11vhrGdBbiT6uJLBPQeepKPM+0rnztMTvl7w65mAC/5PQ7zsLuUcY5d/eDDftkIlmqtgCbQSyjHpJew9XN17/EgB/jYAxjcFkLr/3Q8s5smHnRHTvkEGQ9Jq5QdoJhgcVes5OENgkh5P5PGvE=</D></RSAKeyValue>';

$xml = new DOMDocument();
$xml->loadXML($privatekey);

$d = new Math_BigInteger(base64_decode($xml->getElementsByTagName('D')->item(0)->nodeValue), 256);
$dp = new Math_BigInteger(base64_decode($xml->getElementsByTagName('DP')->item(0)->nodeValue), 256);
$dq = new Math_BigInteger(base64_decode($xml->getElementsByTagName('DQ')->item(0)->nodeValue), 256);
$inverseq = new Math_BigInteger(base64_decode($xml->getElementsByTagName('InverseQ')->item(0)->nodeValue), 256);
$p = new Math_BigInteger(base64_decode($xml->getElementsByTagName('P')->item(0)->nodeValue), 256);
$q = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Q')->item(0)->nodeValue), 256);

$rsa = new Crypt_RSA();
$rsa->modulus = $modulus;
$rsa->publicExponent = $exponent;
$rsa->exponents = array(1=> $dp, $dq);
$rsa->coefficients = array(2 => $inverseq);
$rsa->primes = array(1 => $p, $q);
$rsa->k = strlen($rsa->modulus->toBytes());


$rsa->loadKey($privatekey);
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);

$plaintext =  $rsa->decrypt(base64_decode("H6nfkWw/nVXCLO/R0TWZiPUIBNzUEgKUfgCSXI/pOkMhR1+7YwaXjVKvpfF6gt9GFCJAElFni6q5Efkr76sIt21XZpBLWaxRCE2NiPmK4VxsdB8keDGYKbuhBG8tGYi/gKRydWSd6NkKkBuyvN5KsUxTCZdQY67BQcpBjf7uh4E="));
echo $plaintext."<br>";
echo base64_encode($rsa->encrypt($plaintext));

?>


c# class
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

namespace TravianoBot
{
    public static class AsymmetricEncryption
    {
        private static bool _optimalAsymmetricEncryptionPadding = false;

        public static void GenerateKeys(int keySize, out string publicKey, out string publicAndPrivateKey)
        {
            using (var provider = new RSACryptoServiceProvider(keySize))
            {
                publicKey = provider.ToXmlString(false);
                publicAndPrivateKey = provider.ToXmlString(true);
            }
        }

        public static string EncryptText(string text, int keySize, string publicKeyXml)
        {
            var encrypted = Encrypt(Encoding.UTF8.GetBytes(text), keySize, publicKeyXml);
            return Convert.ToBase64String(encrypted);
        }

        public static byte[] Encrypt(byte[] data, int keySize, string publicKeyXml)
        {
            if (data == null || data.Length == 0) throw new ArgumentException("Data are empty", "data");
            int maxLength = GetMaxDataLength(keySize);
            if (data.Length > maxLength) throw new ArgumentException(String.Format("Maximum data length is {0}", maxLength), "data");
            if (!IsKeySizeValid(keySize)) throw new ArgumentException("Key size is not valid", "keySize");
            if (String.IsNullOrEmpty(publicKeyXml)) throw new ArgumentException("Key is null or empty", "publicKeyXml");

            using (var provider = new RSACryptoServiceProvider(keySize))
            {
                provider.FromXmlString(publicKeyXml);
                return provider.Encrypt(data, _optimalAsymmetricEncryptionPadding);
            }
        }

        public static string DecryptText(string text, int keySize, string publicAndPrivateKeyXml)
        {
            var decrypted = Decrypt(Convert.FromBase64String(text), keySize, publicAndPrivateKeyXml);
            return Encoding.UTF8.GetString(decrypted);
        }

        public static byte[] Decrypt(byte[] data, int keySize, string publicAndPrivateKeyXml)
        {
            if (data == null || data.Length == 0) throw new ArgumentException("Data are empty", "data");
            if (!IsKeySizeValid(keySize)) throw new ArgumentException("Key size is not valid", "keySize");
            if (String.IsNullOrEmpty(publicAndPrivateKeyXml)) throw new ArgumentException("Key is null or empty", "publicAndPrivateKeyXml");

            using (var provider = new RSACryptoServiceProvider(keySize))
            {
                provider.FromXmlString(publicAndPrivateKeyXml);
                return provider.Decrypt(data, _optimalAsymmetricEncryptionPadding);
            }
        }

        public static int GetMaxDataLength(int keySize)
        {
            if (_optimalAsymmetricEncryptionPadding)
            {
                return ((keySize - 384) / 8) + 7;
            }
            return ((keySize - 384) / 8) + 37;
        }

        public static bool IsKeySizeValid(int keySize)
        {
            return keySize >= 384 &&
                    keySize <= 16384 &&
                    keySize % 8 == 0;
        }
    }

}


and my test code
Code: Select all
const int keySize = 1024;
            string publicAndPrivateKey = "<RSAKeyValue><Modulus>qBrA2sWTvLIupgKAZV5b2uMGBuxOKQNM/C8oGP82DvuyAo6M02NwoxZ+hBSYH8h/ZYp5do6ynGdEidxGfEiBJL3zj/CR6crX6EAho7k/sE4gssT+z4Gr74jY3IGLNQmpyUoU9qPAtyzQDyBTRb5su3BQVzJExEfOtxmSfrr+94c=</Modulus><Exponent>AQAB</Exponent><P>0rKSsKPBU/AI/BIxWH15izMIDSq/siDeUIRGmm3mQbMp+FRVk03MrMNgrx19ygTqNBwn+RXwNDksxBR/+Oh30Q==</P><Q>zD+7IWCGOsLvD2G2nEeEqNV0UPSHbxr1PM3zd+3UBBestdQrPQMBn1R+axPXZbG9p0GrL/V8Zzpu/lQDr0mn1w==</Q><DP>L5jhpH/Jy8F89hzSAvCNhZGorvjKR14/eqb3ICnVi2ADCjNbBaTcqOaWL9kUso97rPvzV8TJ97I217Dd3AgAEQ==</DP><DQ>SN/ITa1Z1ydsEknj1LizvWWDfcrxc5PjwhEdeEHT7q3fwnR0BO3Iq2eDP4MxzCfxqfaFNLRa8Z3osjeZpPYbuw==</DQ><InverseQ>SkEIO0RsafwrmOqMBp18jnAVpPVez7JWY//z/lW0aR4Mx40b7SMoEZoV+kcD/q1zeQM1iIe/pJqWFKwGSNg8dw==</InverseQ><D>C5thSWLhJCxVGczej2E8ufgdoH11vhrGdBbiT6uJLBPQeepKPM+0rnztMTvl7w65mAC/5PQ7zsLuUcY5d/eDDftkIlmqtgCbQSyjHpJew9XN17/EgB/jYAxjcFkLr/3Q8s5smHnRHTvkEGQ9Jq5QdoJhgcVes5OENgkh5P5PGvE=</D></RSAKeyValue>";
            string publicKey ="<RSAKeyValue><Modulus>qBrA2sWTvLIupgKAZV5b2uMGBuxOKQNM/C8oGP82DvuyAo6M02NwoxZ+hBSYH8h/ZYp5do6ynGdEidxGfEiBJL3zj/CR6crX6EAho7k/sE4gssT+z4Gr74jY3IGLNQmpyUoU9qPAtyzQDyBTRb5su3BQVzJExEfOtxmSfrr+94c=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
            //AsymmetricEncryption.GenerateKeys(keySize, out publicKey, out publicAndPrivateKey);
            string text = "ofa";
            string encrypted = "hHIldmvQA/bzDUGIML+9mpOwe2ToYv6nNv6/4dfvrGIBlDv8Mw7HqxRP3EJubZtH/68NqJb8XNMz39Db46FmNzyKA3O8Y0ty1CqAgjI3LvTkOznMgHawAoulvO4cN2HEIQalFJ4StPJmFeLr3smj6zYEKxbnk9oMA+rxno8yiSw=";
            string decrypted = AsymmetricEncryption.DecryptText(encrypted, keySize, publicAndPrivateKey);
            textBox12.Text = encrypted;
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Wed Aug 28, 2013 9:38 pm

Can PHP decrypt C# encrypted data?

Can you provide some sample phpseclib-produced ciphertext's and some sample C# produced ciphertext's?

Thanks!
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Wed Sep 04, 2013 4:07 am

yes php decrypt
put the problem occurred when trying to decrypt php encrypted data

and bro
php also doesn't decrypt it's own encrypted data
Code: Select all
<?php
include('Crypt/RSA.php');
include('Math/BigInteger.php');
define('CRYPT_RSA_PKCS1_COMPAT', true);

$publickey = '<RSAKeyValue><Modulus>2xrDz/SAJ9QX4qtgnN2E8UlUa5ayPFVhzlv5afeHRL4RDsoqxSDCfL+oZxnZCWAMBNwHeFxcaibhfgG3oXbis8yg5yc5ac22zg26S3fcGaz//LXhG+pApHz/Bt6x7SYeAeZqm9Bpc1dNAOlCRXd/88Q9405s8q1cfqQzM+gU2Dk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>';


$xml = new DOMDocument();
$xml->loadXML($publickey);

$modulus = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Modulus')->item(0)->nodeValue), 256);
$exponent = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Exponent')->item(0)->nodeValue), 256);

$privatekey = '<RSAKeyValue><Modulus>2xrDz/SAJ9QX4qtgnN2E8UlUa5ayPFVhzlv5afeHRL4RDsoqxSDCfL+oZxnZCWAMBNwHeFxcaibhfgG3oXbis8yg5yc5ac22zg26S3fcGaz//LXhG+pApHz/Bt6x7SYeAeZqm9Bpc1dNAOlCRXd/88Q9405s8q1cfqQzM+gU2Dk=</Modulus><Exponent>AQAB</Exponent><P>787qpkCapSXhyqks50GHIlnyWL2QGcPHtOhWBmLiOYod1EjrYKM7w5AMN251b+Q/hv4Injbc3LbZzCo49J/75Q==</P><Q>6eX8GJx/9vv8LHwqQEVrYTcAl2uP+4dUkQCCNWTvJoAY2W3LuG8oPbqPzoDLlj/9581xgnI57jkV1g7g/2HtxQ==</Q><DP>Xe0YgReKuqaUwnDysn069ZxvTIyq1TyWiuf5UbUHUGwldNE+x/IHZXiVIFz2SGYI79GuBHIOnbBMrCfZeQ70dQ==</DP><DQ>eyD66OnZ42cbhT+H7nWc5XxS72NMVJkVR5AA+6K60oW0jyFhkSHTCUvg0FC028+sFg7spkMDhAjBGgKTJ12iEQ==</DQ><InverseQ>50MjKmCl9DZjequHmfW3PZ0cwcTLjhakx1qTcl/Xur0SzgdsIW3ncKJVbG7vfpRlHfpH2uNGL7lR66NAj/qI+A==</InverseQ><D>RiTibU/0O0v+PZXp/y434ls8iJkdBI29Gyh8x7zz9ED5CwgT+zoKqY9eJWuz/Plfv6qFRbYj6+P4qrN4C1wZJSkE/vhqHPxdlyNTmoehS0FLiBBhX2EFHg+srU+ArVWTfqrvhJhhacp6R7wzFqgH2W6vixaYrmtln77dR7PI39E=</D></RSAKeyValue>';

$xml = new DOMDocument();
$xml->loadXML($privatekey);

$d = new Math_BigInteger(base64_decode($xml->getElementsByTagName('D')->item(0)->nodeValue), 256);
$dp = new Math_BigInteger(base64_decode($xml->getElementsByTagName('DP')->item(0)->nodeValue), 256);
$dq = new Math_BigInteger(base64_decode($xml->getElementsByTagName('DQ')->item(0)->nodeValue), 256);
$inverseq = new Math_BigInteger(base64_decode($xml->getElementsByTagName('InverseQ')->item(0)->nodeValue), 256);
$p = new Math_BigInteger(base64_decode($xml->getElementsByTagName('P')->item(0)->nodeValue), 256);
$q = new Math_BigInteger(base64_decode($xml->getElementsByTagName('Q')->item(0)->nodeValue), 256);

$rsa = new Crypt_RSA();
$rsa->modulus = $modulus;
$rsa->publicExponent = $exponent;
$rsa->exponents = array(1=> $dp, $dq);
$rsa->coefficients = array(2 => $inverseq);
$rsa->primes = array(1 => $p, $q);
$rsa->k = strlen($rsa->modulus->toBytes());

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);

$ciphertext = ($rsa->encrypt("ofa"));
echo $rsa->decrypt($ciphertext)."<br>";

?>
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Wed Sep 04, 2013 7:30 am

You're not using it correctly.

If you want to decrypt data encrypted by the private key you need to explicitely load the public key. The inverse is true as well.

You can't decrypt data with the same key that you encrypted it with. This is not asymmetric encryption.

Some libs may transparently and automatically use the public key when the private key is loaded and you're trying to encrypt. phpseclib doesn't because you can, in fact, encrypt with the private key. It doesn't have as many use-cases as doing so with the public key but that doesn't mean it's never valid to do so.
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Wed Sep 04, 2013 1:19 pm

If you want to decrypt data encrypted by the private key you need to explicitely load the public key. The inverse is true as well.


can you give me am example please
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Wed Sep 04, 2013 2:49 pm

Here it is:

Code: Select all
<?php
include('Crypt/RSA.php');
include('Math/BigInteger.php');
define('CRYPT_RSA_PKCS1_COMPAT', true);

$publickey = '<RSAKeyValue><Modulus>2xrDz/SAJ9QX4qtgnN2E8UlUa5ayPFVhzlv5afeHRL4RDsoqxSDCfL+oZxnZCWAMBNwHeFxcaibhfgG3oXbis8yg5yc5ac22zg26S3fcGaz//LXhG+pApHz/Bt6x7SYeAeZqm9Bpc1dNAOlCRXd/88Q9405s8q1cfqQzM+gU2Dk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>';

$privatekey = '<RSAKeyValue><Modulus>2xrDz/SAJ9QX4qtgnN2E8UlUa5ayPFVhzlv5afeHRL4RDsoqxSDCfL+oZxnZCWAMBNwHeFxcaibhfgG3oXbis8yg5yc5ac22zg26S3fcGaz//LXhG+pApHz/Bt6x7SYeAeZqm9Bpc1dNAOlCRXd/88Q9405s8q1cfqQzM+gU2Dk=</Modulus><Exponent>AQAB</Exponent><P>787qpkCapSXhyqks50GHIlnyWL2QGcPHtOhWBmLiOYod1EjrYKM7w5AMN251b+Q/hv4Injbc3LbZzCo49J/75Q==</P><Q>6eX8GJx/9vv8LHwqQEVrYTcAl2uP+4dUkQCCNWTvJoAY2W3LuG8oPbqPzoDLlj/9581xgnI57jkV1g7g/2HtxQ==</Q><DP>Xe0YgReKuqaUwnDysn069ZxvTIyq1TyWiuf5UbUHUGwldNE+x/IHZXiVIFz2SGYI79GuBHIOnbBMrCfZeQ70dQ==</DP><DQ>eyD66OnZ42cbhT+H7nWc5XxS72NMVJkVR5AA+6K60oW0jyFhkSHTCUvg0FC028+sFg7spkMDhAjBGgKTJ12iEQ==</DQ><InverseQ>50MjKmCl9DZjequHmfW3PZ0cwcTLjhakx1qTcl/Xur0SzgdsIW3ncKJVbG7vfpRlHfpH2uNGL7lR66NAj/qI+A==</InverseQ><D>RiTibU/0O0v+PZXp/y434ls8iJkdBI29Gyh8x7zz9ED5CwgT+zoKqY9eJWuz/Plfv6qFRbYj6+P4qrN4C1wZJSkE/vhqHPxdlyNTmoehS0FLiBBhX2EFHg+srU+ArVWTfqrvhJhhacp6R7wzFqgH2W6vixaYrmtln77dR7PI39E=</D></RSAKeyValue>';

$rsa = new Crypt_RSA();

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);

$rsa->loadKey($privatekey);
$ciphertext = ($rsa->encrypt("ofa"));

$rsa->loadKey($publickey);
echo $rsa->decrypt($ciphertext)."<br>";

I removed some extra portions of your code that are no longer necessary as of the latest version of phpseclib.
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Wed Sep 04, 2013 6:12 pm

i copy paste your code and i don't know why i face this error
http://traviano.com/ofa/Lic/test2.php
Notice: Decryption error in /home/content/60/11035360/html/ofa/Lic/Crypt/RSA.php on line 2225
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Wed Sep 04, 2013 11:52 pm

Well it's working fine for me.

Can you post your phpinfo() and your Crypt/RSA.php? ie. I'm curious if you're using latest git or 0.3.5 or some other version.

Thanks!
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Thu Sep 05, 2013 3:30 am

PHP 5.3

RSA class here
http://pastebin.com/1AHLSEJJ
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Re: Decrypt .NET

Postby TerraFrost » Thu Sep 05, 2013 1:22 pm

I asked for your phpinfo because I was curious what specific version of PHP you were using (ie. 5.3.1? 5.3.17?) and what extensions you had installed (bcmath, gmp, openssl?)

Anyway that said I don't think I need that anymore because I think your problem has been fixed in the latest Git version. In particular, I think this commit fixed it:

https://github.com/phpseclib/phpseclib/ ... pt/RSA.php

So downloaded the latest Git version and let me know if that works for you:

https://raw.github.com/phpseclib/phpsec ... pt/RSA.php
TerraFrost
Legendary Guard
 
Posts: 12357
Joined: Wed Dec 04, 2002 6:37 am

Re: Decrypt .NET

Postby Dev.Ofa » Fri Sep 06, 2013 6:23 am

thanks bro
every thing works well with me now
am very thanks
Dev.Ofa
Traveler
 
Posts: 7
Joined: Mon Aug 26, 2013 6:17 am

Previous

Return to phpseclib support

Who is online

Users browsing this forum: No registered users and 1 guest

cron