public async Task <LoginResponse> LoginAsync(string encryptionToken, string userName, string password, CancellationToken cancelToken) { var crypt = _blowfishFactory(Encoding.ASCII.GetBytes(encryptionToken)); var paddedPassword = crypt.ApplyPkcs5Padding(password); var passwordBytes = Encoding.ASCII.GetBytes(paddedPassword); var base64EncryptedBytes = crypt.Encrypt_ECB(passwordBytes); var base64EncryptedString = Convert.ToBase64String(base64EncryptedBytes); var args = new BodyArgs(); args.Add("UserId", userName); args.Add("cartype"); args.Add("custom_sessionid"); args.Add("initial_app_strings", _apiKey); args.Add("tz"); args.Add("lg", "en-US"); args.Add("DCMID"); args.Add("VIN");; args.Add("RegionCode", "NNA"); args.Add("Password", base64EncryptedString); var response = await PostAsync <LoginResponse>(_loginRoute, args, cancelToken); return(response); }
public async Task <string> GetEncryptionTokenAsync(CancellationToken cancelToken) { var args = new BodyArgs(); args.Add("cartype"); args.Add("custom_sessionid"); args.Add("initial_app_strings", _apiKey); args.Add("tz"); args.Add("lg", "en-US"); args.Add("DCMID"); args.Add("VIN"); args.Add("RegionCode", "NNA"); var response = await PostAsync <InitialAppResponse>(_initialAppRoute, args, cancelToken); return(response.EncryptionKey); }
public async Task <IDictionary <string, bool> > GetSettingsAsync(CancellationToken cancelToken) { var args = new BodyArgs(); args.Add("cartype"); args.Add("custom_sessionid"); args.Add("initial_app_strings", _apiKey); args.Add("tz"); args.Add("lg", "en-US"); args.Add("DCMID"); args.Add("VIN"); args.Add("RegionCode", "NNA"); var response = await PostAsync <CountryResponse>(_countryRoute, args, cancelToken); return(response.Settings); }
public Task <BatteryStatusResponse> GetStatusAsync(string sessionId, CancellationToken cancelToken) { var args = new BodyArgs(); args.Add("cartype"); args.Add("custom_sessionid"); args.Add("initial_app_strings", _apiKey); args.Add("tz"); args.Add("lg", "en-US"); args.Add("DCMID"); args.Add("VIN"); args.Add("RegionCode", "NNA"); var result = this.PostAsync <BatteryStatusResponse>(_batteryStatusRoute, args, cancelToken); return(result); }