protected bool CheckAccessCore(OperationContext operationContext, string username, string token)
        {
            try
            {
                string ip = "";
                //AspNetCache cache = Utility.Cache.AspNetCache;

                MessageProperties prop = operationContext.IncomingMessageProperties;
                var endpoint           = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                if (endpoint != null)
                {
                    ip = endpoint.Address;
                }

                var    message = operationContext.RequestContext.RequestMessage;
                string action  = operationContext.IncomingMessageHeaders.Action;

                Uri actionUri  = new Uri(action);
                var methodName = actionUri.Segments.Last();
                if (!methodName.ToLower().Equals("servielogin"))
                {
                    //string token = "";

                    var encoding     = Encoding.UTF8;
                    var encryptedKey = TripleDESProvider.Encrypt(token);
                    var keyByte      = encoding.GetBytes(encryptedKey);
                    var hmacsha512   = new HMACSHA512(keyByte);
                    var hashmessage  = hmacsha512.ComputeHash(keyByte);
                    var enckey       = Convert.ToBase64String(hashmessage);


                    var login = WcfAutenticationProvider.Get();
                    if (login.TockenKey == enckey && login.UserName == username)
                    {
                        //TWO Hours
                        if ((DateTime.Now - login.LastSet).Minutes > 120)
                        {
                            return(false);
                        }
                        return(true);
                        //TODO: add CheckAccess
                        //return CheckAccess(operationContext, "", actionUri, ip, "");
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#2
0
        public IProviderRegistration AddTripleDES(Action <TripleDESProviderParams> func)
        {
            var tripleDESProvider = new TripleDESProvider();

            func.Invoke(tripleDESProvider);
            tripleDESProvider.ConfirmValue();
            _cryptProviders.Add(tripleDESProvider);
            return(this);
        }
示例#3
0
        public static string Open(string filename, EncryptionType et)
        {
            BinaryReader br  = new BinaryReader(new FileStream(filename, FileMode.Open));
            List <byte>  _in = new List <byte>();

            while (br.BaseStream.Position < br.BaseStream.Length)
            {
                _in.Add(br.ReadByte());
            }
            br.Close();
            if (et == EncryptionType.AES)
            {
                return(Utilities.ByteToString(AESProvider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.ASCII)
            {
                return(ASCIIProvider.Decrypt(Utilities.ByteToString(_in.ToArray())));
            }
            if (et == EncryptionType.DES)
            {
                return(Utilities.ByteToString(DESProvider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.L1F3)
            {
                return(L1F3Provider.Decrypt(_in.ToArray()));
            }
            if (et == EncryptionType.RC2)
            {
                return(Utilities.ByteToString(RC2Provider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.Rijndael)
            {
                return(Utilities.ByteToString(RijndaelProvider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.RSA)
            {
                return(Utilities.ByteToString(RSAProvider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.TripleDES)
            {
                return(Utilities.ByteToString(TripleDESProvider.Decrypt(_in.ToArray())));
            }
            if (et == EncryptionType.Xor)
            {
                return(AESProvider.Decrypt(Utilities.ByteToString(_in.ToArray())));
            }
            throw new Exception("Invalid decryption type!");
        }
示例#4
0
        /// <summary>
        /// Does the actual saving.
        /// </summary>
        public override void Close()
        {
            // save the file to the filestream
            FileStream fs = new FileStream(Filename, FileMode.Create);

            if (Encryption == EncryptionType.AES)
            {
                fs.Write(AESProvider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.ASCII)
            {
                fs.Write(Utilities.StringToByte(ASCIIProvider.Encrypt(Utilities.ByteToString(Text.ToArray()))), 0, Text.Count);
            }
            if (Encryption == EncryptionType.DES)
            {
                fs.Write(DESProvider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.L1F3)
            {
                fs.Write(L1F3Provider.Encrypt(Utilities.ByteToString(Text.ToArray())), 0, Text.Count);
            }
            if (Encryption == EncryptionType.RC2)
            {
                fs.Write(RC2Provider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.Rijndael)
            {
                fs.Write(RijndaelProvider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.RSA)
            {
                fs.Write(RSAProvider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.TripleDES)
            {
                fs.Write(TripleDESProvider.Encrypt(Text.ToArray()), 0, Text.Count);
            }
            if (Encryption == EncryptionType.Xor)
            {
                fs.Write(Utilities.StringToByte(XorProvider.Encrypt(Utilities.ByteToString(Text.ToArray()))), 0, Text.Count);
            }
            fs.Close();
            base.Close();
        }
示例#5
0
        public static LuaValue Encrypt(LuaValue[] args)
        {
            string encType = (args[0] as LuaString).Text.ToLower();
            string _in     = args[1].ToString();

            if (encType == "aes")
            {
                return(new LuaString(AESProvider.Encrypt(_in)));
            }
            else if (encType == "ascii")
            {
                // encrypt with first byte of key
                return(new LuaString(ASCIIProvider.Encrypt(_in)));
            }
            if (encType == "des")
            {
                return(new LuaString(DESProvider.Encrypt(_in)));
            }
            if (encType == "rc2")
            {
                return(new LuaString(RC2Provider.Encrypt(_in)));
            }
            if (encType == "rijndael")
            {
                return(new LuaString(RijndaelProvider.Encrypt(_in)));
            }
            if (encType == "rsa")
            {
                return(new LuaString(RSAProvider.Encrypt(_in)));
            }
            if (encType == "tripledes")
            {
                return(new LuaString(TripleDESProvider.Encrypt(_in)));
            }
            if (encType == "xor")
            {
                return(new LuaString(XorProvider.Encrypt(_in)));
            }
            throw new Exception("Unsuported encryption '" + encType + "'!");
        }