I don't see what the problem is. Have a method that reads a file, decrypts it, and reads that in to a DataSet (DataSet.ReadXml). Of course, this requires that the application reading the file can access the private key of the key pair from which the public key was used to encrypt the file. Make sure this is secured well and that it isn't distributed to clients in a haphazard way. Once someone gets a hold of the private key, there's nothing they can't do! Since you are working with XML, you might consider XML Encryption and Signatures. I have an article about XML Digitial Signatures and encryption isn't much different: http://www.codeproject.com/dotnet/xmldsiglic.asp[^] Being a industry standard and all, it is a lot better to use for practically any system that understands XML. This also takes the canonicalization of XML into account, which can be important when submitting text files (for instance, changing the line-endings via encoding changes could invalidate the document and it won't be descrypted correctly).
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----