Servidor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
##Server $TcpListener = New-Object System.Net.Sockets.TcpListener (New-Object System.Net.IPEndPoint([IPAddress]::Loopback,2050)) $TcpListener.Start() $stream = (New-Object System.IO.StreamReader ($TcpListener.AcceptTcpClient().GetStream())).ReadLine() #Para descifrar el mensaje es necesario tener el certificado # https://www.jesusninoc.com/11/20/imports-certificates-and-private-keys-from-a-personal-information-exchange-pfx-file-to-the-destination-store/ "Texto cifrado: $stream" $stream > cifradoparadescifrar.txt $mensaje = Unprotect-CmsMessage -Path cifradoparadescifrar.txt "Texto descifrado: $mensaje" $TcpListener.Stop() |
Cliente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
##Client $TcpClient = New-Object System.Net.Sockets.TcpClient([IPAddress]"127.0.0.1", "2050") $stream = New-Object System.IO.StreamWriter $TcpClient.GetStream() # Enviar mensaje cifrado # Crear un certificado para firmar el mensaje # https://www.jesusninoc.com/11/18/exports-a-certificate-to-a-personal-information-exchange-pfx-file/ $cert = New-SelfSignedCertificate -DnsName jesusninoc3445122 -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsage KeyEncipherment,DataEncipherment, KeyAgreement -Type DocumentEncryptionCert -KeyExportPolicy ExportableEncrypted # Encrypts content by using the Cryptographic Message Syntax format "hola" | Protect-CmsMessage -To cn=jesusninoc3445122 -OutFile secret.txt $val=[string](Get-Content secret.txt) $stream.Write($val) $stream.Dispose() |