Dispose() защищенный Метод

protected Dispose ( bool disposing ) : void
disposing bool
Результат void
Пример #1
0
        public static String Decrypt(String privateKey, String salt, ApiObject request)
        {
            var aes = new AesManaged();
            aes.IV = Encoding.Unicode.GetBytes(salt);
            aes.Key = RSADecrypt(privateKey, request.Key);

            String decrypted = null;

            try
            {
                var decryptor = aes.CreateDecryptor();

                using (MemoryStream msDecrypt = new MemoryStream(request.Data))
                {
                    using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                    {
                        using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                        {

                            // Read the decrypted bytes from the decrypting stream
                            // and place them in a string.
                            decrypted = srDecrypt.ReadToEnd();
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                aes.Dispose();
            }

            return decrypted;
        }
Пример #2
0
        void Encrypt(OnCommandArgs args, string[] inMsg)
        {
            if (inMsg.Length < 3){
                _ircInterface.Client.SendMessage(SendType.Message, args.Source, args.Nick + " the syntax for this command is .encrypt <key> <data>");
                return;
            }
            try{
                var key = AsciiToBase10(inMsg[1].ToCharArray());
                var msg = AssembleMessage(inMsg.Skip(2).ToList());
                msg = msg.Remove(msg.Length - 1);
                var msgByte = AsciiToBase10(msg.ToCharArray());

                if (msgByte.Length%16 != 0){
                    var paddedLen = (msgByte.Length/16 + 1)*16;
                    msgByte = PKCS7(msgByte, paddedLen);
                }

                var aes = new AesManaged();
                aes.KeySize = 128;
                aes.Mode = CipherMode.CBC;
                aes.Key = PKCS7(key, 16);
                aes.Padding = PaddingMode.None;
                aes.IV = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};

                var memStrm = new MemoryStream(msgByte.Length);
                var cryptStrm = new CryptoStream(memStrm, aes.CreateEncryptor(), CryptoStreamMode.Write);
                cryptStrm.Write(msgByte, 0, msgByte.Length);

                var ret = memStrm.ToArray();
                aes.Dispose();
                cryptStrm.Dispose();
                memStrm.Dispose();

                var retb10 = new string(Convert.ToBase64String(ret).ToCharArray());
                _ircInterface.Client.SendMessage(SendType.Message, args.Source, args.Nick + ": " + retb10);
            }
            catch{
                _ircInterface.Client.SendMessage(SendType.Message, args.Source, args.Nick + ": something went wrong during encryption.");
            }
        }
Пример #3
0
        void Decrypt(OnCommandArgs args, string[] inMsg)
        {
            if (inMsg.Length < 3){
                _ircInterface.Client.SendMessage(SendType.Message, args.Source, args.Nick + " the syntax for this command is .decrypt <key> <data>");
                return;
            }
            try{
                var key = AsciiToBase10(inMsg[1].ToCharArray());
                var msgByte = Convert.FromBase64CharArray(inMsg[2].ToCharArray(), 0, inMsg[2].Length);

                var aes = new AesManaged();
                aes.Mode = CipherMode.CBC;
                aes.IV = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
                aes.KeySize = 128;
                var keyPad = PKCS7(key, 16);
                aes.Key = keyPad;
                aes.Padding = PaddingMode.None;

                var memStrm = new MemoryStream(msgByte.Length);
                var cryptStrm = new CryptoStream(memStrm, aes.CreateDecryptor(), CryptoStreamMode.Write);
                cryptStrm.Write(msgByte, 0, msgByte.Length);

                var ret = memStrm.ToArray();
                aes.Dispose();
                cryptStrm.Dispose();
                memStrm.Dispose();
                ret = StripPKCS7(ret);
                var retStr = new string(Base10ToAscii(ret));
                _ircInterface.Client.SendMessage(SendType.Message, args.Source, args.Nick + ": " + retStr);
            }
            catch{
                _ircInterface.Client.SendMessage
                    (SendType.Message, args.Source, args.Nick + ": something went wrong during decryption. did you change the encrypted string?");
            }
        }
Пример #4
0
        public static ApiObject Encrypt(String publicKey, String salt, String dataToEncrypt)
        {
            var aes = new AesManaged();
            aes.IV = Encoding.Unicode.GetBytes(salt);

            Byte[] key = aes.Key;
            Byte[] encrypted = null;

            try
            {
                var encryptor = aes.CreateEncryptor();

                // Create the streams used for encryption.
                using (MemoryStream msEncrypt = new MemoryStream())
                {
                    using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                        {

                            //Write all data to the stream.
                            swEncrypt.Write(dataToEncrypt);
                        }
                        encrypted = msEncrypt.ToArray();
                    }
                }
            } catch(Exception ex)
            {

            }
            finally
            {
                aes.Dispose();
            }

            return new ApiObject { Data = encrypted, Key =  RSAEncrypt(publicKey, key) };
        }