32
32
//! This is the Intel TDX attestation library for Rust.
33
33
#![ allow( non_camel_case_types) ]
34
34
35
- use std:: option:: Option ;
36
35
use std:: mem;
36
+ use std:: option:: Option ;
37
37
pub use tdx_attest_sys:: tdx_attest_error_t;
38
38
pub use tdx_attest_sys:: tdx_report_data_t;
39
39
pub use tdx_attest_sys:: tdx_report_t;
40
40
pub use tdx_attest_sys:: tdx_rtmr_event_t;
41
41
pub use tdx_attest_sys:: tdx_uuid_t;
42
42
43
- /// Request a Quote of the calling TD.
43
+ /// Request a Quote of the calling TD.
44
44
///
45
45
/// # Param
46
46
/// - **tdx_report_data**\
@@ -71,7 +71,7 @@ pub use tdx_attest_sys::tdx_uuid_t;
71
71
/// # Examples
72
72
/// ```
73
73
/// use tdx_attest_rs::*;
74
- ///
74
+ ///
75
75
/// let tdx_report_data = tdx_report_data_t{
76
76
/// d: [0; 64usize],
77
77
/// };
@@ -95,9 +95,7 @@ pub fn tdx_att_get_quote(
95
95
None => std:: ptr:: null_mut ( ) ,
96
96
} ;
97
97
let ( p_att_key_id_list, att_key_id_list_size) = match att_key_id_list {
98
- Some ( p) => {
99
- ( p. as_ptr ( ) as * const tdx_uuid_t , p. len ( ) as u32 )
100
- } ,
98
+ Some ( p) => ( p. as_ptr ( ) as * const tdx_uuid_t , p. len ( ) as u32 ) ,
101
99
None => ( std:: ptr:: null ( ) , 0u32 ) ,
102
100
} ;
103
101
let p_att_key_id = match att_key_id {
@@ -107,16 +105,23 @@ pub fn tdx_att_get_quote(
107
105
let mut buf = std:: ptr:: null_mut ( ) ;
108
106
let mut buf_len = 0 ;
109
107
unsafe {
110
- let result = tdx_attest_sys:: tdx_att_get_quote ( p_tdx_report_data, p_att_key_id_list, att_key_id_list_size, p_att_key_id,
111
- & mut buf, & mut buf_len, flags) ;
108
+ let result = tdx_attest_sys:: tdx_att_get_quote (
109
+ p_tdx_report_data,
110
+ p_att_key_id_list,
111
+ att_key_id_list_size,
112
+ p_att_key_id,
113
+ & mut buf,
114
+ & mut buf_len,
115
+ flags,
116
+ ) ;
112
117
match result {
113
118
tdx_attest_error_t:: TDX_ATTEST_SUCCESS => {
114
119
assert ! ( !buf. is_null( ) ) ;
115
120
assert ! ( buf_len > 0 ) ;
116
121
let quote = std:: slice:: from_raw_parts ( buf, buf_len as usize ) . to_vec ( ) ;
117
122
tdx_attest_sys:: tdx_att_free_quote ( buf) ;
118
- return ( result, Some ( quote) )
119
- } ,
123
+ return ( result, Some ( quote) ) ;
124
+ }
120
125
_ => return ( result, None ) ,
121
126
}
122
127
}
@@ -145,7 +150,7 @@ pub fn tdx_att_get_quote(
145
150
/// # Examples
146
151
/// ```
147
152
/// use tdx_attest_rs::*;
148
- ///
153
+ ///
149
154
/// let tdx_report_data = tdx_report_data_t{
150
155
/// d: [0; 64usize],
151
156
/// };
@@ -162,9 +167,7 @@ pub fn tdx_att_get_report(
162
167
Some ( p) => p as * const tdx_report_data_t ,
163
168
None => std:: ptr:: null_mut ( ) ,
164
169
} ;
165
- unsafe {
166
- tdx_attest_sys:: tdx_att_get_report ( p_tdx_report_data, tdx_report)
167
- }
170
+ unsafe { tdx_attest_sys:: tdx_att_get_report ( p_tdx_report_data, tdx_report) }
168
171
}
169
172
170
173
/// Extend one of the TDX runtime measurement registers (RTMRs).
@@ -197,9 +200,7 @@ pub fn tdx_att_get_report(
197
200
/// let result = tdx_att_extend(&rtmr_event);
198
201
/// ```
199
202
200
- pub fn tdx_att_extend (
201
- rtmr_event : & [ u8 ] ,
202
- ) -> tdx_attest_error_t {
203
+ pub fn tdx_att_extend ( rtmr_event : & [ u8 ] ) -> tdx_attest_error_t {
203
204
if rtmr_event. len ( ) < mem:: size_of :: < tdx_rtmr_event_t > ( ) {
204
205
return tdx_attest_error_t:: TDX_ATTEST_ERROR_INVALID_PARAMETER ;
205
206
}
@@ -227,22 +228,27 @@ pub fn tdx_att_extend(
227
228
/// use tdx_attest_rs::*;
228
229
/// let (result, att_key_id_list) = tdx_att_get_supported_att_key_ids();
229
230
/// ```
230
- pub fn tdx_att_get_supported_att_key_ids (
231
- ) -> ( tdx_attest_error_t , Option < Vec < tdx_uuid_t > > ) {
231
+ pub fn tdx_att_get_supported_att_key_ids ( ) -> ( tdx_attest_error_t , Option < Vec < tdx_uuid_t > > ) {
232
232
let mut list_count = 0 ;
233
233
unsafe {
234
- let result = tdx_attest_sys:: tdx_att_get_supported_att_key_ids ( std:: ptr:: null_mut ( ) as * mut tdx_uuid_t , & mut list_count) ;
234
+ let result = tdx_attest_sys:: tdx_att_get_supported_att_key_ids (
235
+ std:: ptr:: null_mut ( ) as * mut tdx_uuid_t ,
236
+ & mut list_count,
237
+ ) ;
235
238
match result {
236
239
tdx_attest_error_t:: TDX_ATTEST_SUCCESS => {
237
- let mut att_key_id_list = vec ! [ tdx_uuid_t{ d: [ 0 ; 16usize ] , } ; list_count as usize ] ;
238
- let result = tdx_attest_sys:: tdx_att_get_supported_att_key_ids ( att_key_id_list. as_mut_ptr ( ) , & mut list_count) ;
240
+ let mut att_key_id_list = vec ! [ tdx_uuid_t { d: [ 0 ; 16usize ] } ; list_count as usize ] ;
241
+ let result = tdx_attest_sys:: tdx_att_get_supported_att_key_ids (
242
+ att_key_id_list. as_mut_ptr ( ) ,
243
+ & mut list_count,
244
+ ) ;
239
245
match result {
240
246
tdx_attest_error_t:: TDX_ATTEST_SUCCESS => {
241
247
return ( result, Some ( att_key_id_list) )
242
- } ,
248
+ }
243
249
_ => return ( result, None ) ,
244
250
}
245
- } ,
251
+ }
246
252
_ => return ( result, None ) ,
247
253
}
248
254
}
@@ -251,42 +257,34 @@ pub fn tdx_att_get_supported_att_key_ids(
251
257
#[ cfg( test) ]
252
258
mod tests {
253
259
use super :: * ;
254
-
260
+
255
261
#[ test]
256
262
fn test_tdx_att_get_report ( ) {
257
- let tdx_report_data = tdx_report_data_t {
258
- d : [ 0 ; 64usize ] ,
259
- } ;
260
- let mut tdx_report = tdx_report_t {
261
- d : [ 0 ; 1024usize ] ,
262
-
263
- } ;
263
+ let tdx_report_data = tdx_report_data_t { d : [ 0 ; 64usize ] } ;
264
+ let mut tdx_report = tdx_report_t { d : [ 0 ; 1024usize ] } ;
264
265
let result = tdx_att_get_report ( Some ( & tdx_report_data) , & mut tdx_report) ;
265
266
assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_ERROR_DEVICE_FAILURE ) ;
266
267
}
267
268
268
269
#[ test]
269
270
fn test_tdx_att_get_quote ( ) {
270
- let tdx_report_data = tdx_report_data_t {
271
- d : [ 0 ; 64usize ] ,
272
- } ;
273
- let mut att_key_id = tdx_uuid_t {
274
- d : [ 0 ; 16usize ] ,
275
- } ;
276
- let ( result, quote) = tdx_att_get_quote ( Some ( & tdx_report_data) , None , Some ( & mut att_key_id) , 0 ) ;
271
+ let tdx_report_data = tdx_report_data_t { d : [ 0 ; 64usize ] } ;
272
+ let mut att_key_id = tdx_uuid_t { d : [ 0 ; 16usize ] } ;
273
+ let ( result, quote) =
274
+ tdx_att_get_quote ( Some ( & tdx_report_data) , None , Some ( & mut att_key_id) , 0 ) ;
277
275
println ! ( "att_key_id {:?}" , att_key_id. d) ;
278
276
match quote {
279
- q => println ! ( "quote {:?}" , q) ,
277
+ q => println ! ( "quote {:?}" , q) ,
280
278
}
281
- assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_ERROR_DEVICE_FAILURE ) ;
279
+ assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_ERROR_DEVICE_FAILURE ) ;
282
280
}
283
281
284
282
#[ test]
285
283
fn test_tdx_att_extend ( ) {
286
284
let mut rtmr_event = [ 0u8 ; mem:: size_of :: < tdx_rtmr_event_t > ( ) ] ;
287
285
rtmr_event[ 0 ] = 1 ;
288
286
let result = tdx_att_extend ( & rtmr_event) ;
289
- assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_ERROR_DEVICE_FAILURE ) ;
287
+ assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_ERROR_DEVICE_FAILURE ) ;
290
288
}
291
289
292
290
#[ test]
@@ -297,6 +295,6 @@ mod tests {
297
295
for id in ids {
298
296
println ! ( "att_key_id {:?}" , id. d) ;
299
297
}
300
- assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_SUCCESS ) ;
298
+ assert_eq ! ( result, tdx_attest_error_t:: TDX_ATTEST_SUCCESS ) ;
301
299
}
302
300
}
0 commit comments