async void CommandSetDeviceSecretKeys(object sender, EventArgs e)
        {
            UpdateStatus($"CommandSetDeviceSecretKeys", "");

            var resultGetDevice = await DeviceApiClient.GetDeviceId();

            //Generate new keys
            string token = "IDTOKEN"; //TODO Retrieve AzureAD token from current phone session
            DeviceProvisioningRestService client = new DeviceProvisioningRestService("https://edisonapidev.eastus.cloudapp.azure.com/deviceprovisioning/", token);
            var newKeys = await client.GenerateDeviceKeys(resultGetDevice.DeviceId);

            //Pass keys to the device / Activate encryption first!!!
            var resultGetAvailableNetworks = await DeviceApiClient.SetDeviceSecretKeys(new RequestCommandSetDeviceSecretKeys() //This needs to be retrieved from REST endpoint TBD
            {
                PortalPassword      = newKeys.PortalPassword,                                                                  //Will replace the password used for internal REST api
                AccessPointPassword = newKeys.AccessPointPassword,                                                             //Will replace Access point password
                EncryptionKey       = newKeys.EncryptionKey                                                                    //Will replace encryption key used to encrypt some data. After this call this becomes the current encrypt key
            });

            if (!resultGetAvailableNetworks.IsSuccess)
            {
                UpdateStatusError($"CommandSetDeviceSecretKeys", resultGetAvailableNetworks.ErrorMessage);
            }
            UpdateStatusError($"CommandSetDeviceSecretKeys", "Device secret keys reset.");
        }
 public ChooseDeviceTypeViewModel(DeviceSetupService deviceSetupService,
                                  DeviceProvisioningRestService deviceProvisioningRestService,
                                  IOnboardingRestService onboardingRestService,
                                  IWifiService wifiService)
     : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
 {
 }
        async void CommandProvisionDevice(object sender, EventArgs e)
        {
            UpdateStatus($"CommandProvisionDevice", "");

            //Generate CSR
            var resultGenerateCSR = await DeviceApiClient.GetGeneratedCSR();

            if (!resultGenerateCSR.IsSuccess)
            {
                UpdateStatusError($"CommandProvisionDevice", resultGenerateCSR.ErrorMessage);
                return;
            }

            if (string.IsNullOrEmpty(resultGenerateCSR.Csr))
            {
                UpdateStatusError($"CommandProvisionDevice", "Error: The CSR was empty.");
            }

            //Sign Certificate
            string token = "IDTOKEN"; //TODO Retrieve AzureAD token from current phone session
            DeviceProvisioningRestService client = new DeviceProvisioningRestService("https://edisonapidev.eastus.cloudapp.azure.com/deviceprovisioning/", token);
            var certificate = await client.GenerateCertificate(new DeviceCertificateRequestModel()
            {
                DeviceType = "Edison.Devices.SoundSensor", //TODO Need it dynamic from ListFirmwares
                Csr        = resultGenerateCSR.Csr
            });

            if (certificate == null)
            {
                UpdateStatusError($"CommandProvisionDevice", "The signed certificate could not be retrieved.");
                return;
            }

            //Provision device
            var resultProvisionDevice = await DeviceApiClient.ProvisionDevice(new RequestCommandProvisionDevice()
            {
                DeviceCertificateInformation = certificate
            });

            if (!resultProvisionDevice.IsSuccess)
            {
                UpdateStatusError($"CommandProvisionDevice", resultProvisionDevice.ErrorMessage);
                return;
            }

            //Set Device Type
            var resultSetDeviceType = await DeviceApiClient.SetDeviceType(new RequestCommandSetDeviceType()
            {
                DeviceType = certificate.DeviceType
            });

            if (!resultSetDeviceType.IsSuccess)
            {
                UpdateStatusError($"CommandProvisionDevice", resultSetDeviceType.ErrorMessage);
                return;
            }

            UpdateStatus($"CommandProvisionDevice", "Provisionning complete");
        }
Esempio n. 4
0
 public RegisterDeviceViewModel(
     DeviceSetupService deviceSetupService,
     IDeviceRestService deviceRestService,
     IWifiService wifiService,
     IOnboardingRestService onboardingRestService,
     DeviceProvisioningRestService deviceProvisioningRestService
     ) : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
 {
     this.deviceRestService = deviceRestService;
 }
Esempio n. 5
0
 public MainViewModel(DeviceSetupService deviceSetupService,
                      IDeviceRestService deviceRestService, AuthService authService,
                      DeviceProvisioningRestService deviceProvisioningRestService,
                      IOnboardingRestService onboardingRestService,
                      IWifiService wifiService
                      ) : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
 {
     this.deviceRestService = deviceRestService;
     this.authService       = authService;
 }
Esempio n. 6
0
 public DeviceSetupBaseViewModel(DeviceSetupService deviceSetupService,
                                 DeviceProvisioningRestService deviceProvisioningRestService,
                                 IOnboardingRestService onboardingRestService,
                                 IWifiService wifiService)
 {
     this.deviceSetupService            = deviceSetupService;
     this.deviceProvisioningRestService = deviceProvisioningRestService;
     this.onboardingRestService         = onboardingRestService;
     this.wifiService = wifiService;
 }
        public SelectWifiViewModel(
            IOnboardingRestService onboardingRestService,
            DeviceSetupService deviceSetupService,
            IWifiService wifiService,
            DeviceProvisioningRestService deviceProvisioningRestService
            )
            : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
        {
            this.onboardingRestService.SetBasicAuthentication(deviceSetupService.PortalPassword);

            this.wifiService.CheckingConnectionStatusUpdated += WifiService_CheckingConnectionStatusUpdated;
        }
 public ManageDeviceViewModel(
     DeviceSetupService deviceSetupService,
     ILocationService locationService,
     IDeviceRestService deviceRestService,
     DeviceProvisioningRestService deviceProvisioningRestService,
     IOnboardingRestService onboardingRestService,
     IWifiService wifiService
     ) : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
 {
     this.locationService   = locationService;
     this.deviceRestService = deviceRestService;
 }
 public CompleteRegistrationViewModel(DeviceSetupService deviceSetupService,
                                      DeviceProvisioningRestService deviceProvisioningRestService,
                                      IOnboardingRestService onboardingRestService,
                                      IWifiService wifiService) : base(deviceSetupService, deviceProvisioningRestService, onboardingRestService, wifiService)
 {
 }