/* * Método privado para almacenar la clave pública * */ private void AlmacenarClavePublica(XmlDocument xmlDoc) { string path = Constants.PathClavePublica(this.MessageRecieve.Source); string publicKey = xmlDoc.DocumentElement.GetElementsByTagName("key")[0].InnerText; File.WriteAllText(path, publicKey); this._publicKeyClient = Cripto.ImportPublicKey(path); }
//Constructor para mensajes (no conexion) public PostBox(string source, string destination, string tipoMensaje, string db_name, string db_type, XmlNode body, SymmetricAlgorithm symmetricKey, Cripto keyPair) { this._process = new Process(); this._messageRequest = new Message(source, destination, tipoMensaje, db_name, db_type, body); this._messageResponse = new Message(); this._symmetricKey = symmetricKey; this._keyPair = keyPair; this._publicKeyClient = Cripto.ImportPublicKey(Constants.PathClavePublica(destination)); }
/* * Método privado para encriptar el elemento <source> * */ private XmlDocument EncriptarSourceAsimetrico(XmlDocument doc) { this._publicKeyClient = Cripto.ImportPublicKey(Constants.PathClavePublica(doc.DocumentElement.GetElementsByTagName("destination")[0].InnerText)); string xmlAEncriptar = doc.DocumentElement.GetElementsByTagName("source")[0].InnerXml; string xmlEncriptado = Cripto.Encryption(xmlAEncriptar, this._publicKeyClient); doc.DocumentElement.GetElementsByTagName("source")[0].InnerXml = xmlEncriptado; return(doc); }