public void Quic() { TestRuntime.AssertXcodeVersion(13, 0); #if NET using (var m = new NWIPMetadata()) { Assert.That(m.EcnFlag, Is.EqualTo(NWIPEcnFlag.NonEct), "IPMetadataEcnFlag"); Assert.That(m.ReceiveTime, Is.EqualTo(TimeSpan.Zero), "IPMetadataReceiveTime"); #else using (var m = NWProtocolMetadata.CreateIPMetadata()) { Assert.That(m.IPMetadataEcnFlag, Is.EqualTo(NWIPEcnFlag.NonEct), "IPMetadataEcnFlag"); Assert.That(m.IPMetadataReceiveTime, Is.EqualTo(0), "IPMetadataReceiveTime"); #endif Assert.True(m.IsIP, "IsIP"); Assert.False(m.IsTcp, "IsTcp"); Assert.False(m.IsUdp, "IsUdp"); Assert.False(m.IsQuic, "IsQuic"); Assert.NotNull(m.ProtocolDefinition, "ProtocolDefinition"); #if !NET Assert.Throws <InvalidOperationException> (() => { var x = m.SecProtocolMetadata; }, "SecProtocolMetadata"); Assert.Throws <InvalidOperationException> (() => { var x = m.TlsSecProtocolMetadata; }, "TlsSecProtocolMetadata"); #endif Assert.That(m.ServiceClass, Is.EqualTo(NWServiceClass.BestEffort), "ServiceClass"); #if !NET Assert.That(m.IPServiceClass, Is.EqualTo(NWServiceClass.BestEffort), "IPServiceClass"); #endif } } }
public void CreateSecret() { using (var npm = NWProtocolMetadata.CreateIPMetadata()) { // `npm` and `spm` have the same handle - same internal object satistfy both protocols Console.WriteLine($"{CFGetRetainCount (npm.Handle)}"); using (var spm = npm.SecProtocolMetadata) { Console.WriteLine($"{CFGetRetainCount (npm.Handle)}"); Console.WriteLine($"{CFGetRetainCount (spm.Handle)}"); var secret = spm.CreateSecret("test", 16); // crash } } }
public void Udp() { using (var m = NWProtocolMetadata.CreateUdpMetadata()) { Assert.That(m.IPMetadataEcnFlag, Is.EqualTo(NWIPEcnFlag.NonEct), "IPMetadataEcnFlag"); Assert.That(m.IPMetadataReceiveTime, Is.EqualTo(0), "IPMetadataReceiveTime"); Assert.False(m.IsIP, "IsIP"); Assert.False(m.IsTcp, "IsTcp"); Assert.True(m.IsUdp, "IsUdp"); Assert.NotNull(m.ProtocolDefinition, "ProtocolDefinition"); Assert.NotNull(m.SecProtocolMetadata, "SecProtocolMetadata"); Assert.That(m.ServiceClass, Is.EqualTo(NWServiceClass.BestEffort), "ServiceClass"); } }
public void Udp() { using (var m = NWProtocolMetadata.CreateUdpMetadata()) { Assert.Throws <InvalidOperationException> (() => { var x = m.IPMetadataEcnFlag; }, "IPMetadataEcnFlag"); Assert.Throws <InvalidOperationException> (() => { var x = m.IPMetadataReceiveTime; }, "IPMetadataReceiveTime"); Assert.False(m.IsIP, "IsIP"); Assert.False(m.IsTcp, "IsTcp"); Assert.True(m.IsUdp, "IsUdp"); Assert.NotNull(m.ProtocolDefinition, "ProtocolDefinition"); Assert.Throws <InvalidOperationException> (() => { var x = m.SecProtocolMetadata; }, "SecProtocolMetadata"); Assert.Throws <InvalidOperationException> (() => { var x = m.TlsSecProtocolMetadata; }, "TlsSecProtocolMetadata"); Assert.Throws <InvalidOperationException> (() => { var x = m.ServiceClass; }, "ServiceClass"); Assert.Throws <InvalidOperationException> (() => { var x = m.IPServiceClass; }, "IPServiceClass"); } }
public void IP() { using (var m = NWProtocolMetadata.CreateIPMetadata()) { Assert.That(m.IPMetadataEcnFlag, Is.EqualTo(NWIPEcnFlag.NonEct), "IPMetadataEcnFlag"); Assert.That(m.IPMetadataReceiveTime, Is.EqualTo(0), "IPMetadataReceiveTime"); Assert.True(m.IsIP, "IsIP"); Assert.False(m.IsTcp, "IsTcp"); Assert.False(m.IsUdp, "IsUdp"); Assert.NotNull(m.ProtocolDefinition, "ProtocolDefinition"); Assert.Throws <InvalidOperationException> (() => { var x = m.SecProtocolMetadata; }, "SecProtocolMetadata"); Assert.Throws <InvalidOperationException> (() => { var x = m.TlsSecProtocolMetadata; }, "TlsSecProtocolMetadata"); Assert.That(m.ServiceClass, Is.EqualTo(NWServiceClass.BestEffort), "ServiceClass"); Assert.That(m.IPServiceClass, Is.EqualTo(NWServiceClass.BestEffort), "IPServiceClass"); } }
public void IPDefaults() { using (var m = NWProtocolMetadata.CreateIPMetadata()) { var s = m.SecProtocolMetadata; // This is mostly, but not always, returning false // Assert.False (s.EarlyDataAccepted, "EarlyDataAccepted"); Assert.That(s.NegotiatedCipherSuite, Is.EqualTo(SslCipherSuite.SSL_NULL_WITH_NULL_NULL), "NegotiatedCipherSuite"); Assert.Null(s.NegotiatedProtocol, "NegotiatedProtocol"); Assert.That(s.NegotiatedProtocolVersion, Is.EqualTo(SslProtocol.Unknown), "NegotiatedProtocolVersion"); Assert.Null(s.PeerPublicKey, "PeerPublicKey"); #if false Assert.True(SecProtocolMetadata.ChallengeParametersAreEqual(s, s), "ChallengeParametersAreEqual"); Assert.True(SecProtocolMetadata.PeersAreEqual(s, s), "PeersAreEqual"); #endif } }