KeePassLib.Serialization.Kdb4File.ProcessNode C# (CSharp) Method

ProcessNode() private method

private ProcessNode ( XmlReader xr ) : XorredBuffer
xr XmlReader
return XorredBuffer
        private XorredBuffer ProcessNode(XmlReader xr)
        {
            // Debug.Assert(xr.NodeType == XmlNodeType.Element);

            XorredBuffer xb = null;
            if(xr.HasAttributes)
            {
                if(xr.MoveToAttribute(AttrProtected))
                {
                    if(xr.Value == ValTrue)
                    {
                        xr.MoveToElement();
                        string strEncrypted = ReadStringRaw(xr);

                        byte[] pbEncrypted;
                        if(strEncrypted.Length > 0)
                            pbEncrypted = Convert.FromBase64String(strEncrypted);
                        else pbEncrypted = new byte[0];

                        byte[] pbPad = m_randomStream.GetRandomBytes((uint)pbEncrypted.Length);

                        xb = new XorredBuffer(pbEncrypted, pbPad);
                    }
                }
            }

            return xb;
        }