示例#1
0
		/// <summary>
		/// Obtain the device id and encryption key needed for other calls
		/// </summary>
		/// <remarks>Run this method before making any other calls</remarks>
		/// <returns></returns>
		public async Task AuthorizeAsync()
		{
			byte[] authorizationPacket = PacketGenerator.GenerateAuthorizationPacket(this);

			var encryptedResponse = await SendAndWaitForResponseAsync(authorizationPacket);

			var encryptedPayload = encryptedResponse.Slice(0x38);
			var payload = encryptedPayload.Decrypt();

			var deviceId = new byte[4];
			Array.Copy(payload, 0x00, deviceId, 0, deviceId.Length);

			var encryptionKey = new byte[16];
			Array.Copy(payload, 0x04, encryptionKey, 0, encryptionKey.Length);

			DeviceId = deviceId;
			EncryptionKey = encryptionKey;
		}