use actix_web::{get, App, HttpServer}; use occlum_ratls::prelude::*; use std::net::SocketAddr; #[get("/")] async fn index() -> String { format!("Hello world!") } #[actix_web::main] async fn main() -> std::io::Result<()> { env_logger::init_from_env(env_logger::Env::default().default_filter_or("trace")); let mrsigner_hex = "83D719E77DEACA1470F6BAF62A4D774303C899DB69020F9C70EE1DFC08C7CE9E"; let mut mrsigner = [0u8; 32]; hex::decode_to_slice(mrsigner_hex, &mut mrsigner).expect("mrsigner decoding failed"); HttpServer::new(|| App::new().service(index)) .bind_ratls( SocketAddr::from(([127, 0, 0, 1], 8000)), RaTlsConfig::new() .allow_instance_measurement( InstanceMeasurement::new().with_mrsigners(vec![SGXMeasurement::new(mrsigner)]), ) .allow_instance_measurement( InstanceMeasurement::new() .with_mrenclaves(vec![ SGXMeasurement::new([0u8; 32]), SGXMeasurement::new([1u8; 32]), ]) .with_product_ids(vec![0, 2]), ), ) .unwrap() .run() .await }