0
votes

To hide a property in WiX I'm using

<Property Id="MY_PASSWORD" Hidden="yes" />

Or

<Control Id="Password" Password="yes" Type="Edit" X="30" Y="173" Width="220" Height="18" Property="MY_PASSWORD">

What I haven't found a reliable solution for is how to keep a previously hidden password hidden in a log file after it's been evaluated in:

  • Another property (e.g. SetProperty, type 51 CustomAction, publish property ina dialog)
  • A util:XmlFile entry

Is there a way to have a password evaluated without exposing the password once it's used in another WiX element?

In the instances of SetProperty or a type 51 CustomAction, is there a way to hide the original password without needed to hide the rest of the string.

For example set Property="SOME_STRING" Value="password=[MY_PASSWORD];other=[ANOTHER_PROPERTY]", have the property string show up as "password=********;other=the evaluated string"

In the instance of using util:XmlFile, is there any way to hide a password that's evaluated here from showing up in a log file?

1

1 Answers

0
votes

This is the solution I came up with, I'm open to better solutions.

In the case of (e.g. SetProperty, type 51 CustomAction, or publish property in a dialog), what I did is create a reference to the property, which I mark as Hidden="yes".

<Property Id="Property_2" Hidden="yes" />

To handle the case: For example set Property="SOME_STRING" Value="password=[MY_PASSWORD];other=[ANOTHER_PROPERTY]", have the property string show up as "password=********;other=the evaluated string"

What I did was write a type 51 CustomAction to create that new property

<CustomAction Id="Set.NewProperty" Property="NewProperty" Value="password=[MY_PASSWORD];other=[ANOTHER_PROPERTY]" />

And add a separate reference to the new property to hide it.

<Property Id="NewProperty" Hidden="yes" />

This worked for me to obscure these details from util:XmlFile.

This solution, in my opinion is less than perfect. Using this method hides the entire string. I would prefer a solution that only hides the password details portion of the string.