PKCS12 Java Keystore da CA e certificado do usuário em java

Recentemente, fui encarregado de zombar de um produto da Apple (iPhone Configuration Utility) em Java. Uma das seções em que estou um pouco presa é uma parte sobre o Exchange ActiveSync. Lá, ele permite que você selecione um certificado de seu Keychain para usar como credenciais para sua conta EAS. Após algumas pesquisas, descobri que na verdade ele está criando um keystore PKCS12, inserindo a chave privada do certificado que selecionei e codificando-a em XML. Até agora não é grande coisa. Se eu criar um arquivo .p12 com o Keychain Access, ele será carregado sem problemas. Mas encontro um problema ao tentar trazê-lo para Java.

Digamos que exporte um desses documentos que havia usado anteriormente com o arquivo .p12 como um arquivo .cer (é o que esperamos obter no ambiente). Agora, quando carrego no Java, recebo um objeto Certificate da seguinte maneira ...

KeyStore ks = java.security.KeyStore.getInstance("PKCS12");
ks.load(null, "somePassword".toCharArray());

CertificateFactory cf = CertificateFactory.getInstance("X.509", new BouncyCastleProvider());
java.security.cert.Certificate userCert  = cf.generateCertificate(new FileInputStream("/Users/me/Desktop/RecentlyExportedCert.cer"));

Mas quando eu tento ...

ks.setCertificateEntry("SomeAlias", userCert);

Eu recebo a exceção ...

java.security.KeyStoreException: TrustedCertEntry not supported

Então, a partir dos certificados, passo para as teclas. Mas com esses certificados (também obtive o certificado da CA), só consigo acessar a chave pública, não a privada. E se eu tentar adicionar a chave pública assim ...

java.security.cert.Certificate[] chain = {CACert};
ks.setKeyEntry("SomeAlias", userCert.getPublicKey().getEncoded(), chain);

Eu recebo...

java.security.KeyStoreException: Private key is not stored as PKCS#8 EncryptedPrivateKeyInfo: java.io.IOException: DerValue.getOctetString, not an Octet String: 3

Então agora eu estou aqui. Alguém tem alguma idéia de como obter uma chave privada de um arquivo .cer em um keystore PKCS12 em Java? Estou no caminho certo?

Desde já, obrigado!