¿Por qué keyStore.aliases () está vacío para pkcs12?

Estoy intentando cargar PrivateKey desde el archivo .p12 usando este código:

    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    java.security.KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC");
    keyStore.load(new FileInputStream(new File("my_domain_com.p12")), password);
    keyStore.aliases().hasMoreElements(); //this is false
    java.security.PrivateKey privateKey = (PrivateKey) keyStore.getKey("SomeAlias", password);  

Estoy tratando de encontrar la razón por la que no hay alias. Pero no soy capaz de encontrar. ¿Cuál puede ser la razón para el alias vacío? Quiero obtener una clave privada y cifrar un texto usando esta clave. ¿Hay otro apporach?

También tengo el archivo .cer, pero no estoy seguro de que deba usarlo juntos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta