@@ -229,7 +229,7 @@ export class DataLayer {
229229 if ( el . value === "" || this . excludedFields . includes ( el . name ) ) return ;
230230
231231 const value = this . hashedFields . includes ( el . name )
232- ? this . hash ( el . value )
232+ ? await this . hash ( el . value )
233233 : el . value ;
234234
235235 if ( [ "checkbox" , "radio" ] . includes ( el . type ) ) {
@@ -263,7 +263,7 @@ export class DataLayer {
263263
264264 if ( el . name === this . retainedEmailField ) {
265265 const retainedEmailValue = this . geRetainedFieldsValue ( "email" ) ;
266- const sha256value = await this . shaHash ( retainedEmailValue ) ;
266+ const sha256value = await this . hash ( retainedEmailValue ) ;
267267 localStorage . setItem ( `EN_HASH_EMAIL` , sha256value ) ;
268268 this . dataLayer . push ( {
269269 event : "EN_HASH_VALUE_UPDATED" ,
@@ -274,7 +274,7 @@ export class DataLayer {
274274 return ;
275275 } else if ( this . retainedAddressFields . includes ( el . name ) ) {
276276 const retainedAddressValue = this . geRetainedFieldsValue ( "address" ) ;
277- const sha256value = await this . shaHash ( retainedAddressValue ) ;
277+ const sha256value = await this . hash ( retainedAddressValue ) ;
278278 localStorage . setItem ( `EN_HASH_ADDRESS` , sha256value ) ;
279279 this . dataLayer . push ( {
280280 event : "EN_HASH_VALUE_UPDATED" ,
@@ -284,7 +284,7 @@ export class DataLayer {
284284 } ) ;
285285 } else if ( this . retainedPhoneFields . includes ( el . name ) ) {
286286 const retainedPhoneValue = this . geRetainedFieldsValue ( "phone" ) ;
287- const sha256value = await this . shaHash ( retainedPhoneValue ) ;
287+ const sha256value = await this . hash ( retainedPhoneValue ) ;
288288 localStorage . setItem ( `EN_HASH_PHONE` , sha256value ) ;
289289 this . dataLayer . push ( {
290290 event : "EN_HASH_VALUE_UPDATED" ,
@@ -327,12 +327,7 @@ export class DataLayer {
327327 }
328328 }
329329
330- private hash ( value : string ) : string {
331- return btoa ( value ) ;
332- }
333-
334- // TODO: Replace the hash function with this secure SHA-256 implementation later
335- private async shaHash ( value : string ) : Promise < string > {
330+ private async hash ( value : string ) : Promise < string > {
336331 const data = this . encoder . encode ( value ) ;
337332 const hashBuffer = await crypto . subtle . digest ( "SHA-256" , data ) ;
338333 return Array . from ( new Uint8Array ( hashBuffer ) )
0 commit comments