| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System.Text;
- using Renci.SshNet.Common;
- using Renci.SshNet.Messages.Transport;
- namespace Renci.SshNet.Tests.Classes.Messages.Transport
- {
- public class KeyExchangeDhGroupExchangeReplyBuilder
- {
- private byte[] _hostKeyAlgorithm;
- private byte[] _hostKeys;
- private BigInteger _f;
- private byte[] _signature;
- public KeyExchangeDhGroupExchangeReplyBuilder WithHostKey(string hostKeyAlgorithm, params BigInteger[] hostKeys)
- {
- _hostKeyAlgorithm = Encoding.UTF8.GetBytes(hostKeyAlgorithm);
- var sshDataStream = new SshDataStream(0);
- foreach (var hostKey in hostKeys)
- {
- sshDataStream.Write(hostKey);
- }
- _hostKeys = sshDataStream.ToArray();
- return this;
- }
- public KeyExchangeDhGroupExchangeReplyBuilder WithF(BigInteger f)
- {
- _f = f;
- return this;
- }
- public KeyExchangeDhGroupExchangeReplyBuilder WithSignature(byte[] signature)
- {
- _signature = signature;
- return this;
- }
- public byte[] Build()
- {
- var sshDataStream = new SshDataStream(0);
- var target = new KeyExchangeDhGroupExchangeReply();
- sshDataStream.WriteByte(target.MessageNumber);
- sshDataStream.Write((uint)(4 + _hostKeyAlgorithm.Length + _hostKeys.Length));
- sshDataStream.Write((uint)_hostKeyAlgorithm.Length);
- sshDataStream.Write(_hostKeyAlgorithm, 0, _hostKeyAlgorithm.Length);
- sshDataStream.Write(_hostKeys, 0, _hostKeys.Length);
- sshDataStream.Write(_f);
- sshDataStream.WriteBinary(_signature);
- return sshDataStream.ToArray();
- }
- }
- }
|