I have two methods XmlWriter and XmlReader.
I have a byte[] called Thumbprint.  In the writer I convert it from a byte[] to a string and write it to my Xml file. This works.  I need to figure out how to read it back in from a string and convert it back to a byte[].
Here is my code so far: 
public void WriteXml(XmlWriter writer)
        {
            writer.WriteStartElement("agent");           
            writer.WriteStartElement("thumbprint");
            var encoding = new UnicodeEncoding();    
            if (Thumbprint != null)
            {
                string base64 = System.Convert.ToBase64String(encoding.GetBytes(Thumbprint.ToString()));
                writer.WriteCData(base64);
            }
            else
            { 
                writer.WriteEndElement();
            }
        }
public void ReadXml(XmlReader reader)
        {
            if (reader.IsStartElement("agent"))
            {    
                //
                // Read past <agent>
                //
                reader.Read();
                while (true)
                {
                    if (reader.IsStartElement("thumbprint"))
                    {
                         byte[] toDecodeByte = System.Convert.FromBase64String(Thumbprint.ToString());
                         Thumbprint = toDecodeByte;   
                    }
                    else
                    {
                        //
                        // Read </agent>
                        //
                        reader.MoveToContent();
                        reader.ReadEndElement();
                        break;
                    }
                }
            }
            else
            {
                throw new XmlException("Expected <agent> element was not present");
            }
        }
Xml Input:
<thumbprint>
    <![CDATA[UwB5AHMAdABlAG0ALgBCAHkAdABlAFsAXQA=]]>
</thumbprint>