summary refs log tree commit diff
path: root/crypto/src/crypto/tls/TlsKeyExchange.cs
blob: 5102edbec9bc40dcb355d4c81aa8b33f1dfd86ae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.IO;

namespace Org.BouncyCastle.Crypto.Tls
{
	/// <summary>
	/// A generic interface for key exchange implementations in TLS 1.0.
	/// </summary>
	public interface TlsKeyExchange
	{
		/// <exception cref="IOException"/>
		void SkipServerCertificate();

		/// <exception cref="IOException"/>
		void ProcessServerCertificate(Certificate serverCertificate);

		/// <exception cref="IOException"/>
		void SkipServerKeyExchange();

		/// <exception cref="IOException"/>
		void ProcessServerKeyExchange(Stream input);

		/// <exception cref="IOException"/>
		void ValidateCertificateRequest(CertificateRequest certificateRequest);

		/// <exception cref="IOException"/>
		void SkipClientCredentials();

		/// <exception cref="IOException"/>
		void ProcessClientCredentials(TlsCredentials clientCredentials);
		
		/// <exception cref="IOException"/>
		void GenerateClientKeyExchange(Stream output);

		/// <exception cref="IOException"/>
		byte[] GeneratePremasterSecret();
	}
}