• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# HandshakeType类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中HandshakeType的典型用法代码示例。如果您正苦于以下问题:C# HandshakeType类的具体用法?C# HandshakeType怎么用?C# HandshakeType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HandshakeType类属于命名空间,在下文中一共展示了HandshakeType类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: VerifyMessage

		protected override bool VerifyMessage (HandshakeType type)
		{
			switch (type) {
			case HandshakeType.ServerHello:
				return hello == null;

			case HandshakeType.Certificate:
				return hello != null && certificate == null && certificateRequest == null && done == null;

			case HandshakeType.ServerKeyExchange:
				if (!UsingServerKeyExchange)
					return false;
				return hello != null && certificate != null && certificateRequest == null && done == null;

			case HandshakeType.CertificateRequest:
				if (UsingServerKeyExchange && serverKeyExchange == null)
					return false;
				return hello != null && certificate != null && certificateRequest == null && done == null;

			case HandshakeType.ServerHelloDone:
				if (UsingServerKeyExchange && serverKeyExchange == null)
					return false;
				return hello != null && done == null;
			default:
				return false;
			}
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:27,代码来源:ServerHello.cs


示例2: GetMessage

		public override HandshakeMessage GetMessage(HandshakeType type)
		{
			// Create and process the record message
			HandshakeMessage msg = this.createServerHandshakeMessage(type);

			return msg;
		}
开发者ID:jonfunkhouser,项目名称:couchbase-lite-net,代码行数:7,代码来源:ServerRecordProtocol.cs


示例3: ReadMessage

		public static HandshakeMessage ReadMessage (TlsContext context, HandshakeType handshakeType, TlsBuffer incoming)
		{
			HandshakeMessage message;
			switch (handshakeType) {
			case HandshakeType.HelloRequest:
				message = new TlsHelloRequest ();
				break;
			case HandshakeType.ServerHello:
				return new TlsServerHello (context, incoming);
			case HandshakeType.Certificate:
				return new TlsCertificate (incoming);
			case HandshakeType.ServerHelloDone:
				message = new TlsServerHelloDone ();
				break;
			case HandshakeType.Finished:
				return new TlsFinished (incoming);
			case HandshakeType.ClientHello:
				return new TlsClientHello (context, incoming);
			case HandshakeType.ClientKeyExchange:
				return new TlsClientKeyExchange (context, incoming);
			case HandshakeType.CertificateRequest:
				return new TlsCertificateRequest (context.NegotiatedProtocol, incoming);
			case HandshakeType.CertificateVerify:
				return new TlsCertificateVerify (context.NegotiatedProtocol, incoming);
			case HandshakeType.ServerKeyExchange:
				return new TlsServerKeyExchange (context, incoming);
			default:
				throw new TlsException (AlertDescription.UnexpectedMessage, "Unknown server handshake message received: {0}", handshakeType);
			}

			message.Read (incoming);
			return message;
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:33,代码来源:HandshakeMessage.cs


示例4: Handshake

 public Handshake(HandshakeType type, ushort payloadSize)
 {
     MessageId = type;
     PayloadSize = payloadSize;
     MajorVersion = Majorversion;
     MinorVersion = Minorversion;
 }
开发者ID:BoyarinO,项目名称:EmailClient,代码行数:7,代码来源:Handshake.cs


示例5: NextProtocolNegotiationMessage

 /// <summary>
 /// Prevents a default instance of the <see cref="NextProtocolNegotiationMessage"/> class from being created.
 /// </summary>
 /// <param name="type">The message type.</param>
 /// <param name="selectedProtocol">The selected during NPN protocol.</param>
 public NextProtocolNegotiationMessage(HandshakeType type, string selectedProtocol)
     : base(type, null)
 {
     this.selectedProtocol = selectedProtocol;
     this.padding = this.CalcPadding(this.selectedProtocol);
     this.fragment = this.FormByteFragment();
 }
开发者ID:nunnun,项目名称:http2-katana,代码行数:12,代码来源:NextProtocolNegotiationMessage.cs


示例6: SendRecord

		public virtual void SendRecord(HandshakeType type)
		{

			IAsyncResult ar = this.BeginSendRecord(type, null, null);

			this.EndSendRecord(ar);

		}
开发者ID:calumjiao,项目名称:Mono-Class-Libraries,代码行数:8,代码来源:RecordProtocol.cs


示例7: HandshakeMessage

		public HandshakeMessage(
			Context			context, 
			HandshakeType	handshakeType, 
			byte[]			data) : base(data)
		{
			this.context		= context;
			this.handshakeType	= handshakeType;						
		}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:8,代码来源:HandshakeMessage.cs


示例8: CheckType

 void CheckType(HandshakeType type)
 {
     if (type == HandshakeType.ServerHelloDone)
         HasServerHelloDone = true;
     else if (type == HandshakeType.Finished)
         _hasFinished = true;
     else if (type == HandshakeType.HelloRequest)
         _hasHelloRequest = true;
 }
开发者ID:Emill,项目名称:Npgsql,代码行数:9,代码来源:HandshakeMessagesBuffer.cs


示例9: VerifyMessage

		protected override bool VerifyMessage (HandshakeType type)
		{
			switch (type) {
			case HandshakeType.ClientHello:
				return hello == null;
			default:
				return false;
			}
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:9,代码来源:ServerConnection.cs


示例10: VerifyMessage

		protected override bool VerifyMessage (HandshakeType type)
		{
			switch (type) {
			case HandshakeType.ChanceCipherSpec:
				return changeCipher == null;
			case HandshakeType.Finished:
				return changeCipher != null && finished == null;
			default:
				return false;
			}
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:11,代码来源:ServerFinished.cs


示例11: UpdateVerify

        private void UpdateVerify(HandshakeType type, uint length, byte[] body)
        {
            if (type == HandshakeType.Finished)
            {
                state.ComputeHandshakeVerify();
            }

            state.UpdateHandshakeVerify(new[] {(byte) type}, 0, 1);
            state.UpdateHandshakeVerify(EndianBitConverter.Big.GetBytes(length), 1, 3);
            state.UpdateHandshakeVerify(body, 0, body.Length);
        }
开发者ID:will14smith,项目名称:Crypto,代码行数:11,代码来源:HandshakeReader.cs


示例12: Read

        private HandshakeMessage Read(HandshakeType type, byte[] body)
        {
            switch (type)
            {
                case HandshakeType.ClientHello:
                    return ClientHelloMessage.Read(state, body);
                case HandshakeType.ClientKeyExchange:
                    return state.KeyExchange.ReadClientKeyExchange(body);
                case HandshakeType.Finished:
                    return FinishedHandshakeMessage.Read(state, body);

                default:
                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
开发者ID:will14smith,项目名称:Crypto,代码行数:15,代码来源:HandshakeReader.cs


示例13: SendRecord

		public override void SendRecord(HandshakeType type)
		{
			// Create the record message
			HandshakeMessage msg = this.createServerHandshakeMessage(type);
			msg.Process();
			
			// Write record
			this.SendRecord(msg.ContentType, msg.EncodeMessage());

			// Update session
			msg.Update();

			// Reset message contents
			msg.Reset();
		}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:15,代码来源:ServerRecordProtocol.cs


示例14: HelloMessage

        protected HelloMessage(HandshakeType type, TlsVersion version, byte[] randomBytes, byte[] sessionId, HelloExtension[] extensions) : base(type)
        {
            Version = version;

            SecurityAssert.NotNull(randomBytes);
            SecurityAssert.SAssert(randomBytes.Length == 32);
            RandomBytes = randomBytes;

            SecurityAssert.NotNull(sessionId);
            SecurityAssert.SAssert(sessionId.Length >= 0 && sessionId.Length <= 32);
            SessionId = sessionId;

            SecurityAssert.NotNull(extensions);
            SecurityAssert.SAssert(extensions.Length >= 0 && extensions.Length <= 0xFFFF);
            Extensions = extensions;
        }
开发者ID:will14smith,项目名称:Crypto,代码行数:16,代码来源:HelloMessage.cs


示例15: VerifyMessage

		protected override bool VerifyMessage (HandshakeType type)
		{
			switch (type) {
			case HandshakeType.ClientKeyExchange:
				return keyExchange == null;
			case HandshakeType.Certificate:
				return keyExchange == null && certificate == null;
			case HandshakeType.ChanceCipherSpec:
				return keyExchange != null && cipherSpec == null;
			case HandshakeType.Finished:
				return cipherSpec != null && finished == null;
			case HandshakeType.CertificateVerify:
				return keyExchange != null && certificate != null && certificateVerify == null && finished == null;
			default:
				return false;
			}
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:17,代码来源:ClientKeyExchange.cs


示例16: CreateMessage

		protected override HandshakeMessage CreateMessage (HandshakeType type, TlsBuffer incoming)
		{
			if (type != HandshakeType.ClientHello)
				throw new TlsException (AlertDescription.UnexpectedMessage);

			if (Renegotiating) {
				var flags = Config.RenegotiationFlags;
				if ((flags & RenegotiationFlags.DisallowRenegotiation) != 0)
					throw new TlsException (AlertDescription.HandshakeFailure, "Renegotiation not allowed.");
				if (!Session.SecureRenegotiation)
					throw new TlsException (AlertDescription.HandshakeFailure, "Renegotiation not allowed.");
			}

			StartHandshake ();

			return base.CreateMessage (type, incoming);
		}
开发者ID:VimalKumarS,项目名称:mono-tls,代码行数:17,代码来源:ServerConnection.cs


示例17: SendRecord

		public override void SendRecord(HandshakeType type)
		{
			// Create and process the record message
			HandshakeMessage msg = this.createClientHandshakeMessage(type);
			msg.Process();

			DebugHelper.WriteLine(">>>> Write handshake record ({0}|{1})", context.Protocol, msg.ContentType);

			// Write record
			this.SendRecord(msg.ContentType, msg.EncodeMessage());

			// Update session
			msg.Update();

			// Reset message contents
			msg.Reset();
		}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:17,代码来源:ClientRecordProtocol.cs


示例18: DoHandshake

    /// <summary>
    /// Handshake with the Audioscrobbler service
    /// </summary>
    /// <returns>True if the connection was successful, false otherwise</returns>
    private static void DoHandshake(bool forceNow_, HandshakeType ReasonForHandshake)
    {
      if (_useDebugLog)
      {
        Log.Debug("AudioscrobblerBase: Attempting {0} handshake", ReasonForHandshake.ToString());
      }

      // Handle uninitialized username/password.
      if (username.Length < 1 || password.Length < 1)
      {
        Log.Error("AudioscrobblerBase: {0}", "user or password not defined");
        workerFailed(ReasonForHandshake, DateTime.MinValue, new Exception("Account details insufficent"));
        return;
      }

      if (!forceNow_ || ReasonForHandshake != HandshakeType.Recover)
      {
        // Check whether we had a *successful* handshake recently.
        if (DateTime.Now < lastHandshake.Add(handshakeInterval))
        {
          string nexthandshake = lastHandshake.Add(handshakeInterval).ToString();
          string logmessage = "Next handshake due at " + nexthandshake;
          if (_useDebugLog)
          {
            Log.Debug("AudioscrobblerBase: {0}", logmessage);
          }
          workerSuccess(ReasonForHandshake, lastHandshake);
          return;
        }
      }

      if (ReasonForHandshake != HandshakeType.Init)
      {
        if (ReasonForHandshake == HandshakeType.PreRadio)
        {
          Log.Warn("AudioscrobblerBase: Disconnected - nevertheless trying radio handshake to listen without submits");
          AttemptRadioHandshake();
          return;
        }
        //else
        //{
        //  Log.Warn("AudioscrobblerBase: Disconnected - not attempting {0} handshake", ReasonForHandshake.ToString());
        //  workerFailed(ReasonForHandshake, DateTime.MinValue, new Exception("Disconnected!"));
        //  return;
        //}
      }

      BackgroundWorker worker = new BackgroundWorker();
      worker.DoWork += new DoWorkEventHandler(Worker_TryHandshake);
      worker.RunWorkerAsync(ReasonForHandshake);
    }
开发者ID:npcomplete111,项目名称:MediaPortal-1,代码行数:55,代码来源:AudioscrobblerBase.cs


示例19: ProcessHandshakeMessage

		private void ProcessHandshakeMessage(HandshakeType type, byte[] buf)
		{
			MemoryStream inStr = new MemoryStream(buf, false);

			/*
			* Check the type.
			*/
			switch (type)
			{
				case HandshakeType.certificate:
				{
					switch (connection_state)
					{
						case CS_SERVER_HELLO_RECEIVED:
						{
							// Parse the Certificate message and send to cipher suite

							Certificate serverCertificate = Certificate.Parse(inStr);

							AssertEmpty(inStr);

							this.keyExchange.ProcessServerCertificate(serverCertificate);

							this.authentication = tlsClient.GetAuthentication();
							this.authentication.NotifyServerCertificate(serverCertificate);

							break;
						}
						default:
							this.FailWithError(AlertLevel.fatal, AlertDescription.unexpected_message);
							break;
					}

					connection_state = CS_SERVER_CERTIFICATE_RECEIVED;
					break;
				}
				case HandshakeType.finished:
					switch (connection_state)
					{
						case CS_SERVER_CHANGE_CIPHER_SPEC_RECEIVED:
							/*
							 * Read the checksum from the finished message, it has always 12 bytes.
							 */
							byte[] serverVerifyData = new byte[12];
							TlsUtilities.ReadFully(serverVerifyData, inStr);

							AssertEmpty(inStr);

							/*
							 * Calculate our own checksum.
							 */
							byte[] expectedServerVerifyData = TlsUtilities.PRF(
								securityParameters.masterSecret, "server finished",
								rs.GetCurrentHash(), 12);

							/*
							 * Compare both checksums.
							 */
							if (!Arrays.ConstantTimeAreEqual(expectedServerVerifyData, serverVerifyData))
							{
								/*
								 * Wrong checksum in the finished message.
								 */
								this.FailWithError(AlertLevel.fatal, AlertDescription.handshake_failure);
							}

							connection_state = CS_DONE;

							/*
							* We are now ready to receive application data.
							*/
							this.appDataReady = true;
							break;
						default:
							this.FailWithError(AlertLevel.fatal, AlertDescription.unexpected_message);
							break;
					}
					break;
				case HandshakeType.server_hello:
					switch (connection_state)
					{
						case CS_CLIENT_HELLO_SEND:
							/*
							 * Read the server hello message
							 */
							TlsUtilities.CheckVersion(inStr, this);

							/*
							 * Read the server random
							 */
							securityParameters.serverRandom = new byte[32];
							TlsUtilities.ReadFully(securityParameters.serverRandom, inStr);

							byte[] sessionID = TlsUtilities.ReadOpaque8(inStr);
							if (sessionID.Length > 32)
							{
								this.FailWithError(AlertLevel.fatal, AlertDescription.illegal_parameter);
							}

							this.tlsClient.NotifySessionID(sessionID);
//.........这里部分代码省略.........
开发者ID:Xanagandr,项目名称:DisaOpenSource,代码行数:101,代码来源:TlsProtocolHandler.cs


示例20: OnHandshakeSuccessful

 private static void OnHandshakeSuccessful(HandshakeType ReasonForHandshake, DateTime lastSuccessfulHandshake)
 {
   switch (ReasonForHandshake)
   {
     case HandshakeType.ChangeUser:
       LoadSettings();
       Log.Info("AudioscrobblerBase: Changed user to {0} - loaded {1} queue items", username, queue.Count);
       break;
     case HandshakeType.PreRadio:
       AttemptRadioHandshake();
       break;
     case HandshakeType.Init:
       AttemptSubmitNow();
       break;
     case HandshakeType.Submit:
       AttemptSubmitNow();
       break;
     case HandshakeType.Announce:
       AttemptAnnounceNow();
       break;
   }
 }
开发者ID:npcomplete111,项目名称:MediaPortal-1,代码行数:22,代码来源:AudioscrobblerBase.cs



注:本文中的HandshakeType类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Hare类代码示例发布时间:2022-05-24
下一篇:
C# Handshake类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap