Hola seoane, gracias por la ayuda, el codigo que me pasaste era aproximadamente lo mismo que estaba haciendo yo en uno de los métodos.
Igualmente lo modifique para usar TStringList, con lo que quedo mucho mas prolijo
Como era muy parecido a lo que estaba haciendo, obtuve el mismo resultado.
Igualmente descubri cual era mi problema, el tema es que no responde bien cuando el usuario no teclea la clave.
En este caso te devuelve **** que es lo que me estaba pasando.
Si el usuario teclea la clave te devuelve la clave correcta
Gracias