[test] Test processing other types of requests in service VM

Test: atest rialto_test
Bug: 299055662
Change-Id: I32cbb08be3499ba5d17bd370bf9f34b9d2f0f991
diff --git a/rialto/tests/test.rs b/rialto/tests/test.rs
index fc6e20a..b8ced95 100644
--- a/rialto/tests/test.rs
+++ b/rialto/tests/test.rs
@@ -21,9 +21,11 @@
     },
     binder::{ParcelFileDescriptor, ProcessState},
 };
-use anyhow::{Context, Result};
+use anyhow::{bail, Context, Result};
 use log::info;
-use service_vm_comm::{Request, Response, VmType};
+use service_vm_comm::{
+    EcdsaP256KeyPair, GenerateCertificateRequestParams, Request, Response, VmType,
+};
 use service_vm_manager::ServiceVm;
 use std::fs::File;
 use std::panic;
@@ -35,17 +37,20 @@
 
 #[test]
 fn process_requests_in_protected_vm() -> Result<()> {
-    let mut vm = start_service_vm(VmType::ProtectedVm)?;
-
-    check_processing_reverse_request(&mut vm)?;
-    Ok(())
+    check_processing_requests(VmType::ProtectedVm)
 }
 
 #[test]
 fn process_requests_in_non_protected_vm() -> Result<()> {
-    let mut vm = start_service_vm(VmType::NonProtectedVm)?;
+    check_processing_requests(VmType::NonProtectedVm)
+}
+
+fn check_processing_requests(vm_type: VmType) -> Result<()> {
+    let mut vm = start_service_vm(vm_type)?;
 
     check_processing_reverse_request(&mut vm)?;
+    check_processing_generating_key_pair_request(&mut vm)?;
+    check_processing_generating_certificate_request(&mut vm)?;
     Ok(())
 }
 
@@ -63,6 +68,31 @@
     Ok(())
 }
 
+fn check_processing_generating_key_pair_request(vm: &mut ServiceVm) -> Result<()> {
+    let request = Request::GenerateEcdsaP256KeyPair;
+
+    let response = vm.process_request(request)?;
+    info!("Received response: {response:?}.");
+
+    match response {
+        Response::GenerateEcdsaP256KeyPair(EcdsaP256KeyPair { .. }) => Ok(()),
+        _ => bail!("Incorrect response type"),
+    }
+}
+
+fn check_processing_generating_certificate_request(vm: &mut ServiceVm) -> Result<()> {
+    let params = GenerateCertificateRequestParams { keys_to_sign: vec![], challenge: vec![] };
+    let request = Request::GenerateCertificateRequest(params);
+
+    let response = vm.process_request(request)?;
+    info!("Received response: {response:?}.");
+
+    match response {
+        Response::GenerateCertificateRequest(_) => Ok(()),
+        _ => bail!("Incorrect response type"),
+    }
+}
+
 fn start_service_vm(vm_type: VmType) -> Result<ServiceVm> {
     android_logger::init_once(
         android_logger::Config::default().with_tag("rialto").with_min_level(log::Level::Debug),