Seguridad Java - Proveedor MSCAPI: ¿Cómo usarlo sin una ventana emergente de contraseña?

Me las he arreglado para usarProveedor de MSCAPI de Sun en mi solicitud El problema que tengo ahora es que siempre aparece una ventana, pidiendo una contraseña, aunque la haya proporcionado en el código. Este es un problema, porque necesito la funcionalidad de criptografía en un servicio web.

Aquí está el código que tengo ahora:

String alias = "Alias to my PK";
char[] pass = "MyPassword".toCharArray();

KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, pass);
Provider p =  ks.getProvider();

Signature sig = Signature.getInstance("SHA1withRSA",p);
PrivateKey key = (PrivateKey) ks.getKey(alias, pass)

sig.initSign(key);
sig.update("Testing".getBytes());
sig.sign();

Esto funciona muy bien, pero aparece una ventana emergente que me pide la contraseña cuando se ejecuta la última línea. ¿Cómo evito eso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta