2012-04-09 21 views
9

Quando creo manualmente una KeyManager, uno dei passaggi è questo:Per che cosa viene utilizzato SunX509 e può funzionare con le parti che utilizzano IbmX509?

KeyManagerFactory.getInstance("SunX509") 

Questo non funziona su IBM JRE cui ho bisogno di specificare "IbmX509".
Le mie domande:

  1. ho letto che questo è chiamato il "algoritmo di codifica certificato". Cosa significa? Quando viene usato?
  2. Cosa succede quando il client utilizza l'algoritmo IBM e il server utilizza l'algoritmo Sun?

Grazie,
Doron

risposta

15

ho letto che questo è chiamato il "algoritmo di codifica certificato".

No, non lo è. È un algoritmo di gestore delle chiavi che definisce sia un provider che un tipo di contenuto, in questo caso "Sun" o "IBM" e X.509. Fondamentalmente è un tipo di keystore.

In ogni caso, la soluzione migliore è di non utilizzare neanche. Basta usare

KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 

Il KeyManager e KeyManagerFactory solo affrontare il locale keystore/truststore. Il peer non si preoccupa di questo, solo dei certificati che sono in loro, e solo indirettamente.

+0

Grazie per la risposta. Perché qualcuno dovrebbe mai voler cambiare questo - cioè perché è un parametro? – daramasala

+4

@DoronTohar PCKS # 11 per una ragione. – EJP

+0

Grazie ancora, sei stato molto utile – daramasala