La mise en œuvre du RSA en C#

Je suis en train d'essayer de mettre en œuvre une classe permettant de gérer les communications sécurisées entre les instances de mon application en utilisant RSACrytoServiceProveider classe.
Première question : est-ce une bonne idée de mettre en œuvre une seule classe pour gérer émetteur-récepteur rôles ou devrais-je répartis les rôles dans les classes individuelles ?. C'est ce que j'ai fait jusqu'à présent:

using System;
using System.Text;
using System.Security.Cryptography;

namespace Agnus.Cipher
{
    public class RSA
    {
        private byte[] plaintextBytes;
        private byte[] ciphertextBytes;
        private RSACryptoServiceProvider rSAProviderThis;
        private RSACryptoServiceProvider rSAProviderOther;

        public string PublicKey
        {
            get { return rSAProviderThis.ToXmlString(false); }
        }

        public RSA()
        {
            rSAProviderThis = new RSACryptoServiceProvider { PersistKeyInCsp = true }; 
            plaintextBytes = Encoding.Unicode.GetBytes(PublicKey);
        }

        public void InitializeRSAProviderOther(string parameters)
        {
            rSAProviderOther.FromXmlString(parameters);
        }

        public byte[] Encrypt()
        {
            return rSAProviderThis.Encrypt(plaintextBytes, true);
        }
        public byte[] Decrypt()
        {
            return rSAProviderThis.Decrypt(ciphertextBytes, true);
        }
        public byte[] Sign()
        {
            using (SHA1Managed SHA1 = new SHA1Managed())
            {
                byte[] hash = SHA1.ComputeHash(ciphertextBytes);
                byte[] signature = rSAProviderThis.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
                return signature;
            }
        }
        public void Verify()
        {
            throw new NotImplementedException();
        }

    }
}

Deuxième question : comment puis-je envoyer et recevoir des données à introduire dans la classe ? je suis un vert corne dans ce domaine, les pointeurs serait appréciée.

OriginalL'auteur gogole | 2008-12-21