Skip to content

Commit

Permalink
Combine auth method and encryption method APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
corbin-phipps committed Jan 24, 2024
1 parent 8dc20d1 commit d307c6d
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 57 deletions.
3 changes: 1 addition & 2 deletions protocol/protos/NetRemoteService.proto
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@ service NetRemote
rpc WifiAccessPointEnable (Microsoft.Net.Remote.Wifi.WifiAccessPointEnableRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointEnableResult);
rpc WifiAccessPointDisable (Microsoft.Net.Remote.Wifi.WifiAccessPointDisableRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointDisableResult);
rpc WifiAccessPointSetPhyType (Microsoft.Net.Remote.Wifi.WifiAccessPointSetPhyTypeRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointSetPhyTypeResult);
rpc WifiAccessPointSetAuthenticationMethod (Microsoft.Net.Remote.Wifi.WifiAccessPointSetAuthenticationMethodRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointSetAuthenticationMethodResult);
rpc WifiAccessPointSetEncryptionMethod (Microsoft.Net.Remote.Wifi.WifiAccessPointSetEncryptionMethodRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointSetEncryptionMethodResult);
rpc WifiAccessPointSetAuthenticationConfiguration (Microsoft.Net.Remote.Wifi.WifiAccessPointSetAuthenticationConfigurationRequest) returns (Microsoft.Net.Remote.Wifi.WifiAccessPointSetAuthenticationConfigurationResult);
}
18 changes: 3 additions & 15 deletions protocol/protos/NetRemoteWifi.proto
Original file line number Diff line number Diff line change
Expand Up @@ -74,25 +74,13 @@ message WifiAccessPointSetPhyTypeResult
WifiAccessPointOperationStatus Status = 2;
}

message WifiAccessPointSetAuthenticationMethodRequest
message WifiAccessPointSetAuthenticationConfigurationRequest
{
string AccessPointId = 1;
Microsoft.Net.Wifi.WifiAuthenticationMethodConfiguration AuthenticationMethodConfiguration = 2;
Microsoft.Net.Wifi.WifiAccessPointAuthenticationConfiguration AuthenticationConfiguration = 2;
}

message WifiAccessPointSetAuthenticationMethodResult
{
string AccessPointId = 1;
WifiAccessPointOperationStatus Status = 2;
}

message WifiAccessPointSetEncryptionMethodRequest
{
string AccessPointId = 1;
Microsoft.Net.Wifi.Dot11CipherAlgorithm CipherAlgorithm = 2;
}

message WifiAccessPointSetEncryptionMethodResult
message WifiAccessPointSetAuthenticationConfigurationResult
{
string AccessPointId = 1;
WifiAccessPointOperationStatus Status = 2;
Expand Down
20 changes: 20 additions & 0 deletions protocol/protos/WifiCore.proto
Original file line number Diff line number Diff line change
Expand Up @@ -164,3 +164,23 @@ message WifiAuthenticationMethodConfiguration
WifiAuthenticationMethodConfigurationEnterprise ConfigurationEnterprise = 4;
}
}

message WifiEncryptionMethodConfigurationNone
{

}

message WifiEncryptionMethodConfiguration
{
Microsoft.Net.Wifi.Dot11CipherAlgorithm CipherAlgorithm = 1;
oneof Configuration
{
WifiEncryptionMethodConfigurationNone ConfigurationNone = 2;
}
}

message WifiAccessPointAuthenticationConfiguration
{
Microsoft.Net.Wifi.WifiAuthenticationMethodConfiguration AuthenticationMethodConfiguration = 1;
Microsoft.Net.Wifi.WifiEncryptionMethodConfiguration EncryptionMethodConfiguration = 2;
}
45 changes: 9 additions & 36 deletions src/common/service/NetRemoteService.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,8 @@ NetRemoteService::WifiEnumerateAccessPoints([[maybe_unused]] ::grpc::ServerConte

using Microsoft::Net::Remote::Wifi::WifiAccessPointOperationStatus;
using Microsoft::Net::Remote::Wifi::WifiAccessPointOperationStatusCode;
using Microsoft::Net::Wifi::WifiAccessPointAuthenticationConfiguration;
using Microsoft::Net::Wifi::WifiAuthenticationMethodConfiguration;
using Microsoft::Net::Wifi::Dot11AuthenticationAlgorithm;
using Microsoft::Net::Wifi::Dot11CipherAlgorithm;
using Microsoft::Net::Wifi::Dot11PhyType;
Expand Down Expand Up @@ -411,13 +413,17 @@ NetRemoteService::WifiAccessPointSetPhyType([[maybe_unused]] ::grpc::ServerConte
}

::grpc::Status
NetRemoteService::WifiAccessPointSetAuthenticationMethod([[maybe_unused]] ::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationMethodRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationMethodResult* response)
NetRemoteService::WifiAccessPointSetAuthenticationConfiguration([[maybe_unused]] ::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationConfigurationRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationConfigurationResult* response)
{
LOGD << std::format("Received WifiAccessPointSetAuthenticationMethod request for access point id {}", request->accesspointid());
LOGD << std::format("Received WifiAccessPointSetAuthenticationConfiguration request for access point id {}", request->accesspointid());

WifiAccessPointOperationStatus status{};

if (request->authenticationmethodconfiguration().authenticationalgorithm() == Dot11AuthenticationAlgorithm::Dot11AuthenticationAlgorithmUnknown)
auto authenticationConfiguration = request->authenticationconfiguration();
auto authenticationMethodConfiguration = authenticationConfiguration.authenticationmethodconfiguration();
auto encryptionMethodConfiguration = authenticationConfiguration.encryptionmethodconfiguration();

if (authenticationMethodConfiguration.authenticationalgorithm() == Dot11AuthenticationAlgorithm::Dot11AuthenticationAlgorithmUnknown)
{
status.set_code(WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeInvalidParameter);
status.set_message("No authentication algorithm provided");
Expand All @@ -443,39 +449,6 @@ NetRemoteService::WifiAccessPointSetAuthenticationMethod([[maybe_unused]] ::grpc
return grpc::Status::OK;
}

::grpc::Status
NetRemoteService::WifiAccessPointSetEncryptionMethod([[maybe_unused]] ::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetEncryptionMethodRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetEncryptionMethodResult* response)
{
LOGD << std::format("Received WifiAccessPointSetEncryptionMethod request for access point id {}", request->accesspointid());

WifiAccessPointOperationStatus status{};

if (request->cipheralgorithm() == Dot11CipherAlgorithm::Dot11CipherAlgorithmUnknown)
{
status.set_code(WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeInvalidParameter);
status.set_message("No encryption algorithm provided");
}
else
{
auto accessPointWeak = m_accessPointManager->GetAccessPoint(request->accesspointid());
auto accessPointController = detail::IAccessPointWeakToAccessPointController(accessPointWeak);
if (!accessPointController)
{
LOGE << std::format("Failed to create controller for access point {}", request->accesspointid());
status.set_code(WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeAccessPointInvalid);
status.set_message(std::format("Failed to create controller for access point {}", request->accesspointid()));
}

// TODO: Use accessPointController to set encryption algorithm.
status.set_code(WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeSucceeded);
}

response->set_accesspointid(request->accesspointid());
*response->mutable_status() = std::move(status);

return grpc::Status::OK;
}

bool
NetRemoteService::ValidateWifiAccessPointEnableRequest(const ::Microsoft::Net::Remote::Wifi::WifiAccessPointEnableRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointOperationStatus& status)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,7 @@ private:
WifiAccessPointSetPhyType(::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetPhyTypeRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetPhyTypeResult* response) override;

virtual ::grpc::Status
WifiAccessPointSetAuthenticationMethod(::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationMethodRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationMethodResult* response) override;

virtual ::grpc::Status
WifiAccessPointSetEncryptionMethod(::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetEncryptionMethodRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetEncryptionMethodResult* response) override;
WifiAccessPointSetAuthenticationConfiguration(::grpc::ServerContext* context, const ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationConfigurationRequest* request, ::Microsoft::Net::Remote::Wifi::WifiAccessPointSetAuthenticationConfigurationResult* response) override;

protected:
bool
Expand Down

0 comments on commit d307c6d

Please sign in to comment.