@@ -23,8 +23,15 @@ macro_rules! named_field_buffer_type {
2323 impl $native_type {
2424 pub const MAX_SIZE : usize = $MAX;
2525
26- pub fn value( & self ) -> & [ u8 ] {
27- & self . 0
26+ pub fn from_bytes( bytes: & [ u8 ] ) -> Result <Self > {
27+ Self :: ensure_valid_buffer_size( bytes. len( ) , "bytes(&[u8])" ) ?;
28+ Ok ( $native_type( bytes. to_vec( ) . into( ) ) )
29+ }
30+
31+ /// Returns the content of the buffer type as
32+ /// a slice of bytes.
33+ pub fn as_bytes( & self ) -> & [ u8 ] {
34+ self . 0 . as_slice( )
2835 }
2936
3037 /// Private function for ensuring that a buffer size is valid.
@@ -53,15 +60,6 @@ macro_rules! named_field_buffer_type {
5360 }
5461 }
5562
56- impl TryFrom <& [ u8 ] > for $native_type {
57- type Error = Error ;
58-
59- fn try_from( bytes: & [ u8 ] ) -> Result <Self > {
60- Self :: ensure_valid_buffer_size( bytes. len( ) , "&[u8]" ) ?;
61- Ok ( $native_type( bytes. to_vec( ) . into( ) ) )
62- }
63- }
64-
6563 impl TryFrom <$tss_type> for $native_type {
6664 type Error = Error ;
6765
@@ -119,7 +117,7 @@ pub mod digest {
119117
120118 fn try_from ( value : Digest ) -> Result < Self > {
121119 value
122- . value ( )
120+ . as_bytes ( )
123121 . try_into ( )
124122 . map_err ( |_| Error :: local_error ( WrapperErrorKind :: WrongParamSize ) )
125123 }
@@ -130,7 +128,7 @@ pub mod digest {
130128
131129 fn try_from ( value : Digest ) -> Result < Self > {
132130 value
133- . value ( )
131+ . as_bytes ( )
134132 . try_into ( )
135133 . map_err ( |_| Error :: local_error ( WrapperErrorKind :: WrongParamSize ) )
136134 }
@@ -141,13 +139,13 @@ pub mod digest {
141139 type Error = Error ;
142140
143141 fn try_from ( value : Digest ) -> Result < Self > {
144- if value. value ( ) . len ( ) != 48 {
142+ if value. len ( ) != 48 {
145143 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
146144 }
147145
148146 let mut result = [ 0 ; 48 ] ;
149147
150- result. copy_from_slice ( value. value ( ) ) ;
148+ result. copy_from_slice ( value. as_bytes ( ) ) ;
151149
152150 Ok ( result)
153151 }
@@ -157,13 +155,13 @@ pub mod digest {
157155 type Error = Error ;
158156
159157 fn try_from ( value : Digest ) -> Result < Self > {
160- if value. value ( ) . len ( ) != 64 {
158+ if value. len ( ) != 64 {
161159 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
162160 }
163161
164162 let mut result = [ 0 ; 64 ] ;
165163
166- result. copy_from_slice ( value. value ( ) ) ;
164+ result. copy_from_slice ( value. as_bytes ( ) ) ;
167165
168166 Ok ( result)
169167 }
@@ -300,12 +298,12 @@ pub mod public_key_rsa {
300298 type Error = Error ;
301299
302300 fn try_from ( public_key_rsa : PublicKeyRsa ) -> Result < Self > {
303- if public_key_rsa. value ( ) . len ( ) > 128 {
301+ if public_key_rsa. len ( ) > 128 {
304302 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
305303 }
306304
307305 let mut value = [ 0u8 ; 128 ] ;
308- value. copy_from_slice ( public_key_rsa. value ( ) ) ;
306+ value. copy_from_slice ( public_key_rsa. as_bytes ( ) ) ;
309307 Ok ( value)
310308 }
311309 }
@@ -314,12 +312,12 @@ pub mod public_key_rsa {
314312 type Error = Error ;
315313
316314 fn try_from ( public_key_rsa : PublicKeyRsa ) -> Result < Self > {
317- if public_key_rsa. value ( ) . len ( ) > 256 {
315+ if public_key_rsa. len ( ) > 256 {
318316 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
319317 }
320318
321319 let mut value = [ 0u8 ; 256 ] ;
322- value. copy_from_slice ( public_key_rsa. value ( ) ) ;
320+ value. copy_from_slice ( public_key_rsa. as_bytes ( ) ) ;
323321 Ok ( value)
324322 }
325323 }
@@ -328,12 +326,12 @@ pub mod public_key_rsa {
328326 type Error = Error ;
329327
330328 fn try_from ( public_key_rsa : PublicKeyRsa ) -> Result < Self > {
331- if public_key_rsa. value ( ) . len ( ) > 384 {
329+ if public_key_rsa. len ( ) > 384 {
332330 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
333331 }
334332
335333 let mut value = [ 0u8 ; 384 ] ;
336- value. copy_from_slice ( public_key_rsa. value ( ) ) ;
334+ value. copy_from_slice ( public_key_rsa. as_bytes ( ) ) ;
337335 Ok ( value)
338336 }
339337 }
@@ -342,12 +340,12 @@ pub mod public_key_rsa {
342340 type Error = Error ;
343341
344342 fn try_from ( public_key_rsa : PublicKeyRsa ) -> Result < Self > {
345- if public_key_rsa. value ( ) . len ( ) > 512 {
343+ if public_key_rsa. len ( ) > 512 {
346344 return Err ( Error :: local_error ( WrapperErrorKind :: WrongParamSize ) ) ;
347345 }
348346
349347 let mut value = [ 0u8 ; 512 ] ;
350- value. copy_from_slice ( public_key_rsa. value ( ) ) ;
348+ value. copy_from_slice ( public_key_rsa. as_bytes ( ) ) ;
351349 Ok ( value)
352350 }
353351 }
0 commit comments