I can think of a potential (but very convoluted) way around it. I do not have my computer with me so I apologise that I cannot try this out for you.
My approach would be to set up a variable for each digit.
Make the text box a DP with a serperate state for each digit and an initial state for your masked text
Progressively each text box on each panel state would consistent of variables plus asterisks, such that state one would be ; state two would be [[Var1]]; state three would be [[Var1]][[Var2]]******* …and so on
Then OnFocus /on keystroke, set Variable digit 1 = the first digit keyed in.
Set the panel to state 2
Text on panel state = variable 1 followed by masked text.
Then work your way through the keystrokes, variable and states until your last DP state has all digits.
Of course this may not work at all, but it might help.