Struct optee_teec::Context
source · pub struct Context { /* private fields */ }
Expand description
An abstraction of the logical connection between a client application and a TEE.
Implementations§
source§impl Context
impl Context
sourcepub fn open_session(&mut self, uuid: Uuid) -> Result<Session>
pub fn open_session(&mut self, uuid: Uuid) -> Result<Session>
Opens a new session with the specified trusted application.
The target trusted application is specified by uuid
.
§Examples
use optee_teec::{Context, ErrorKind, Uuid};
fn main() -> optee_teec::Result<()> {
let mut ctx = Context::new()?;
let uuid = Uuid::parse_str("8abcf200-2450-11e4-abe2-0002a5d5c51b").map_err(|err| {
println!("bad uuid: {:?}", err);
ErrorKind::BadParameters
})?;
let session = ctx.open_session(uuid)?;
Ok(())
}
pub fn open_session_with_login( &mut self, uuid: Uuid, login: ConnectionMethods ) -> Result<Session>
sourcepub fn open_session_with_operation<A: Param, B: Param, C: Param, D: Param>(
&mut self,
uuid: Uuid,
operation: &mut Operation<A, B, C, D>
) -> Result<Session>
pub fn open_session_with_operation<A: Param, B: Param, C: Param, D: Param>( &mut self, uuid: Uuid, operation: &mut Operation<A, B, C, D> ) -> Result<Session>
Opens a new session with the specified trusted application, pass some parameters to TA by an operation.
The target trusted application is specified by uuid
.
§Examples
use optee_teec::{Context, ErrorKind, Operation, ParamNone, ParamType, ParamValue, Uuid};
fn main() -> optee_teec::Result<()> {
let mut ctx = Context::new()?;
let uuid = Uuid::parse_str("8abcf200-2450-11e4-abe2-0002a5d5c51b").map_err(|err| {
println!("bad uuid: {:?}", err);
ErrorKind::BadParameters
})?;
let p0 = ParamValue::new(42, 0, ParamType::ValueInout);
let mut operation = Operation::new(0, p0, ParamNone, ParamNone, ParamNone);
let session = ctx.open_session_with_operation(uuid, &mut operation)?;
Ok(())
}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Context
impl !RefUnwindSafe for Context
impl Unpin for Context
impl !UnwindSafe for Context
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more