/// <summary> /// Processes the request. /// </summary> /// <param name="header">The header.</param> /// <param name="publicKeyEncoded">The public key encoded.</param> /// <param name="response">The response.</param> /// <returns></returns> public static String ProcessRequest(ServerAuthority serverAuthority, byte[] publicKeyEncoded, RequestHeader header, String request) { if (header.MessageHeader.EncryptionHeader.EncryptionType != EncryptionTypes.None) { //byte[] publicKeyEncoded = client.RequestHeader.MessageHeader.EncryptionHeader.PublicKey; DHPublicKeyParameters publicKey = new DHPublicKeyParameters( ((DHPublicKeyParameters)PublicKeyFactory.CreateKey(publicKeyEncoded)).Y, serverAuthority.Parameters); BigInteger agreementValue = serverAuthority.GenerateAgreementValue(publicKey); RijndaelCrypto crypto = new RijndaelCrypto(); return crypto.Encrypt(request, agreementValue.ToString(16)); } else { return request; } }
public void EnableEncryption(ServerAuthority serverAuthority, byte[] encodedPublicKey) { encryptionEnabled = true; this.serverAuthority = serverAuthority; this.remotePublicKey = new DHPublicKeyParameters( ((DHPublicKeyParameters)PublicKeyFactory.CreateKey(encodedPublicKey)).Y, serverAuthority.Parameters); }
public void DisableEncryption() { encryptionEnabled = false; this.serverAuthority = null; this.remotePublicKey = null; }