11use std:: collections:: HashMap ;
2+
3+ #[ cfg( feature = "zeroize" ) ]
24use zeroize:: Zeroize ;
35
46use crate :: cl:: { CredentialSignature , RevocationRegistry , SignatureCorrectnessProof , Witness } ;
@@ -82,6 +84,7 @@ pub type ShortCredentialValues = HashMap<String, String>;
8284#[ derive( Clone , Debug , Default , PartialEq , Eq , Deserialize , Serialize ) ]
8385pub struct CredentialValues ( pub HashMap < String , AttributeValues > ) ;
8486
87+ #[ cfg( feature = "zeroize" ) ]
8588impl Drop for CredentialValues {
8689 fn drop ( & mut self ) {
8790 self . zeroize ( ) ;
@@ -98,6 +101,7 @@ impl Validatable for CredentialValues {
98101 }
99102}
100103
104+ #[ cfg( feature = "zeroize" ) ]
101105impl Zeroize for CredentialValues {
102106 fn zeroize ( & mut self ) {
103107 for attr in self . 0 . values_mut ( ) {
@@ -106,7 +110,8 @@ impl Zeroize for CredentialValues {
106110 }
107111}
108112
109- #[ derive( Clone , Debug , PartialEq , Eq , Zeroize , Deserialize , Serialize ) ]
113+ #[ derive( Clone , Debug , PartialEq , Eq , Deserialize , Serialize ) ]
114+ #[ cfg_attr( feature = "zeroize" , derive( Zeroize ) ) ]
110115pub struct AttributeValues {
111116 pub raw : String ,
112117 pub encoded : String ,
0 commit comments