public TlsPskKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity, TlsPskIdentityManager pskIdentityManager, DHParameters dhParameters, int[] namedCurves, byte[] clientECPointFormats, byte[] serverECPointFormats) : this(keyExchange, supportedSignatureAlgorithms, pskIdentity, pskIdentityManager, new DefaultTlsDHVerifier(), dhParameters, namedCurves, clientECPointFormats, serverECPointFormats) { }
public TlsPskKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity, TlsPskIdentityManager pskIdentityManager, TlsDHVerifier dhVerifier, DHParameters dhParameters, int[] namedCurves, byte[] clientECPointFormats, byte[] serverECPointFormats) : base(keyExchange, supportedSignatureAlgorithms) { switch (keyExchange) { case KeyExchangeAlgorithm.DHE_PSK: case KeyExchangeAlgorithm.ECDHE_PSK: case KeyExchangeAlgorithm.PSK: case KeyExchangeAlgorithm.RSA_PSK: break; default: throw new InvalidOperationException("unsupported key exchange algorithm"); } this.mPskIdentity = pskIdentity; this.mPskIdentityManager = pskIdentityManager; this.mDHVerifier = dhVerifier; this.mDHParameters = dhParameters; this.mNamedCurves = namedCurves; this.mClientECPointFormats = clientECPointFormats; this.mServerECPointFormats = serverECPointFormats; }
public static TcpChannel Create(bool usePrefixLength, TcpClient client, TlsPskIdentityManager pskManager, int blockSize = 0x4000, int maxBufferSize = 0x400000, CancellationToken token = default) { if (usePrefixLength) { return(new TcpServerChannel(client, pskManager, maxBufferSize, token)); } return(new TcpServerChannel2(client, pskManager, blockSize, maxBufferSize, token)); }
public TcpServerChannel(TcpClient client, TlsPskIdentityManager pskManager, int maxBufferSize, CancellationToken token) { this.client = client; this.pskManager = pskManager; this.token = token; this.maxBufferSize = maxBufferSize; this.token.Register(async() => await CloseAsync()); Id = "tcp-" + Guid.NewGuid().ToString(); Port = ((IPEndPoint)client.Client.LocalEndPoint).Port; this.queue = new Queue <byte[]>(); }
public static ProtocolAdapter Create(PiraeusConfig config, GraphManager graphManager, IAuthenticator authenticator, TcpClient client, ILog logger = null, CancellationToken token = default) { TlsPskIdentityManager pskManager = null; if (!string.IsNullOrEmpty(config.PskStorageType)) { if (config.PskStorageType.ToLowerInvariant() == "redis") { pskManager = TlsPskIdentityManagerFactory.Create(config.PskRedisConnectionString); } if (config.PskStorageType.ToLowerInvariant() == "keyvault") { pskManager = TlsPskIdentityManagerFactory.Create(config.PskKeyVaultAuthority, config.PskKeyVaultClientId, config.PskKeyVaultClientSecret); } if (config.PskStorageType.ToLowerInvariant() == "environmentvariable") { pskManager = TlsPskIdentityManagerFactory.Create(config.PskIdentities, config.PskKeys); } } IChannel channel; if (pskManager != null) { channel = ChannelFactory.Create(config.UsePrefixLength, client, pskManager, config.BlockSize, config.MaxBufferSize, token); } else { channel = ChannelFactory.Create(config.UsePrefixLength, client, config.BlockSize, config.MaxBufferSize, token); } IPEndPoint localEP = (IPEndPoint)client.Client.LocalEndPoint; int port = localEP.Port; if (port == 5684) { return(new CoapProtocolAdapter(config, graphManager, authenticator, channel, logger)); } if (port == 1883 || port == 8883) { return(new MqttProtocolAdapter(config, graphManager, authenticator, channel, logger)); } throw new ProtocolAdapterPortException("TcpClient port does not map to a supported protocol."); }
public static TlsServerProtocol ConnectPskTlsServer(TlsPskIdentityManager pskManager, Stream stream) { try { PskTlsServer server = new PskTlsServer2(pskManager); TlsServerProtocol protocol = new TlsServerProtocol(stream, new SecureRandom()); protocol.Accept(server); return(protocol); } catch (Exception ex) { Console.WriteLine("Exception in TLS protocol connnection '{0}'", ex.Message); throw ex; } }
public TlsPskKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity, TlsPskIdentityManager pskIdentityManager, DHParameters dhParameters, int[] namedCurves, byte[] clientECPointFormats, byte[] serverECPointFormats) : base(keyExchange, supportedSignatureAlgorithms) { switch (keyExchange) { default: throw new InvalidOperationException("unsupported key exchange algorithm"); case 13: case 14: case 15: case 24: mPskIdentity = pskIdentity; mPskIdentityManager = pskIdentityManager; mDHParameters = dhParameters; mNamedCurves = namedCurves; mClientECPointFormats = clientECPointFormats; mServerECPointFormats = serverECPointFormats; break; } }
public static TlsServerProtocol ConnectPskTlsServer(this TcpClient client, TlsPskIdentityManager pskManager, Stream stream) { try { PskTlsServer server = new PskTlsServer2(pskManager); TlsServerProtocol protocol = new TlsServerProtocol(stream, new SecureRandom()); protocol.Accept(server); return(protocol); } catch (AggregateException ae) { string msg = String.Format("AggregateException in TLS protocol connnection '{0}'", ae.Flatten().InnerException.Message); Console.WriteLine(msg); throw new Exception(msg, ae.Flatten().InnerException); } catch (Exception ex) { Console.WriteLine("Exception in TLS protocol connnection '{0}'", ex.Message); throw ex; } }
public TlsPskKeyExchange(int keyExchange, global::System.Collections.IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity, TlsPskIdentityManager pskIdentityManager, DHParameters dhParameters, int[] namedCurves, byte[] clientECPointFormats, byte[] serverECPointFormats) : base(keyExchange, supportedSignatureAlgorithms) { //IL_0068: Unknown result type (might be due to invalid IL or missing references) switch (keyExchange) { default: throw new InvalidOperationException("unsupported key exchange algorithm"); case 13: case 14: case 15: case 24: mPskIdentity = pskIdentity; mPskIdentityManager = pskIdentityManager; mDHParameters = dhParameters; mNamedCurves = namedCurves; mClientECPointFormats = clientECPointFormats; mServerECPointFormats = serverECPointFormats; break; } }
public TlsPskKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity, TlsPskIdentityManager pskIdentityManager, DHParameters dhParameters, int[] namedCurves, byte[] clientECPointFormats, byte[] serverECPointFormats) : base(keyExchange, supportedSignatureAlgorithms) { switch (keyExchange) { case KeyExchangeAlgorithm.DHE_PSK: case KeyExchangeAlgorithm.ECDHE_PSK: case KeyExchangeAlgorithm.PSK: case KeyExchangeAlgorithm.RSA_PSK: break; default: throw new InvalidOperationException("unsupported key exchange algorithm"); } this.mPskIdentity = pskIdentity; this.mPskIdentityManager = pskIdentityManager; this.mDHParameters = dhParameters; this.mNamedCurves = namedCurves; this.mClientECPointFormats = clientECPointFormats; this.mServerECPointFormats = serverECPointFormats; }
public PskTlsServer(TlsCipherFactory cipherFactory, TlsPskIdentityManager pskIdentityManager) : base(cipherFactory) { this.mPskIdentityManager = pskIdentityManager; }
public PskTlsServer(TlsPskIdentityManager pskIdentityManager) : this(new DefaultTlsCipherFactory(), pskIdentityManager) { }
public static IChannel Create(bool usePrefixLength, TcpClient client, TlsPskIdentityManager pskManager, int blockSize = 0x4000, int maxBufferSize = 0x400000, CancellationToken token = default) { return(TcpChannel.Create(usePrefixLength, client, pskManager, blockSize, maxBufferSize, token)); }
public PskTlsServer2(TlsCipherFactory cipherFactory, TlsPskIdentityManager pskIdentityManager) : base(cipherFactory, pskIdentityManager) { }
public PskTlsServer2(TlsPskIdentityManager pskIdentityManager) : base(pskIdentityManager) { }