@@ -38,6 +38,7 @@ type Result<T> = ::std::result::Result<T, YubicoError>;
3838
3939#[ derive( Clone , Debug , PartialEq ) ]
4040pub struct Yubikey {
41+ pub name : String ,
4142 pub product_id : u16 ,
4243 pub vendor_id : u16 ,
4344 pub bus_id : u8 ,
@@ -60,13 +61,20 @@ impl Yubico {
6061 for device in self . context . devices ( ) . unwrap ( ) . iter ( ) {
6162 let descr = device. device_descriptor ( ) . unwrap ( ) ;
6263 if descr. vendor_id ( ) == VENDOR_ID {
63- let device = Yubikey {
64+ let name = device
65+ . open ( )
66+ . unwrap ( )
67+ . read_product_string_ascii ( & descr)
68+ . unwrap ( ) ;
69+ let yubikey = Yubikey {
70+ name : name,
6471 product_id : descr. product_id ( ) ,
6572 vendor_id : descr. vendor_id ( ) ,
6673 bus_id : device. bus_number ( ) ,
6774 address_id : device. address ( ) ,
6875 } ;
69- return Ok ( device) ;
76+
77+ return Ok ( yubikey) ;
7078 }
7179 }
7280
@@ -78,7 +86,13 @@ impl Yubico {
7886 for device in self . context . devices ( ) . unwrap ( ) . iter ( ) {
7987 let descr = device. device_descriptor ( ) . unwrap ( ) ;
8088 if descr. vendor_id ( ) == VENDOR_ID {
89+ let name = device
90+ . open ( )
91+ . unwrap ( )
92+ . read_product_string_ascii ( & descr)
93+ . unwrap ( ) ;
8194 let device = Yubikey {
95+ name : name,
8296 product_id : descr. product_id ( ) ,
8397 vendor_id : descr. vendor_id ( ) ,
8498 bus_id : device. bus_number ( ) ,
0 commit comments