@@ -410,10 +410,24 @@ pub const fn detail_fields(cipher_type: u8) -> &'static [DetailField] {
410410 df ( "CVV" , Field :: CardCode , true ) ,
411411 ] ;
412412 const IDENTITY : & [ DetailField ] = & [
413- df ( "Person" , Field :: IdentityName , false ) ,
413+ df ( "Title" , Field :: IdentityTitle , false ) ,
414+ df ( "First" , Field :: IdentityFirstName , false ) ,
415+ df ( "Middle" , Field :: IdentityMiddleName , false ) ,
416+ df ( "Last" , Field :: IdentityLastName , false ) ,
417+ df ( "IdUser" , Field :: IdentityUsername , false ) ,
418+ df ( "Company" , Field :: IdentityCompany , false ) ,
414419 df ( "Email" , Field :: IdentityEmail , false ) ,
415420 df ( "Phone" , Field :: IdentityPhone , false ) ,
416- df ( "Address" , Field :: IdentityAddress , false ) ,
421+ df ( "Addr1" , Field :: IdentityAddress1 , false ) ,
422+ df ( "Addr2" , Field :: IdentityAddress2 , false ) ,
423+ df ( "Addr3" , Field :: IdentityAddress3 , false ) ,
424+ df ( "City" , Field :: IdentityCity , false ) ,
425+ df ( "State" , Field :: IdentityState , false ) ,
426+ df ( "Postal" , Field :: IdentityPostal , false ) ,
427+ df ( "Country" , Field :: IdentityCountry , false ) ,
428+ df ( "SSN" , Field :: IdentitySsn , true ) ,
429+ df ( "Passport" , Field :: IdentityPassport , true ) ,
430+ df ( "License" , Field :: IdentityLicense , true ) ,
417431 ] ;
418432 match cipher_type {
419433 3 => CARD ,
@@ -2201,7 +2215,18 @@ mod tests {
22012215 . expect ( "card has a CVV field" ) ;
22022216 assert_eq ! ( cvv. field, Field :: CardCode ) ;
22032217 assert ! ( cvv. masked, "CVV is masked until revealed" ) ;
2204- assert_eq ! ( detail_fields( 4 ) . len( ) , 4 ) ;
2218+ // Identity exposes its full granular set; the three sensitive fields are
2219+ // masked.
2220+ let id = detail_fields ( 4 ) ;
2221+ assert_eq ! ( id. len( ) , 18 ) ;
2222+ for label in [ "SSN" , "Passport" , "License" ] {
2223+ let f = id. iter ( ) . find ( |f| f. label == label) . expect ( "field present" ) ;
2224+ assert ! ( f. masked, "{label} must be masked" ) ;
2225+ }
2226+ assert_eq ! (
2227+ id. iter( ) . find( |f| f. label == "SSN" ) . map( |f| f. field) ,
2228+ Some ( Field :: IdentitySsn )
2229+ ) ;
22052230 }
22062231
22072232 #[ test]
0 commit comments