2012-02-16 21 views
14

Sunucu takımı tarafından sağlanan anahtar deposunu kullanarak sunucuya bağlanmaya çalışıyorum. Android desteği .jks keystore türü var mı?

sunucusuna hizmet çağrısı gönderirken

ilk ben O “BKS” olarak deposu türü dönen

KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); 

şu api kullanarak KeyStore Örneği yarattı.

Hangi sunucu ekibinin gönderdiği anahtar deposu “.jks” (somename.jks) şeklindedir. Bu nedenle, “Anahtar deposunun yanlış sürümü” istisnası alıyorum.

Yolu

KeyStore keystore = KeyStore.getInstance("JKS");  

aşağıdaki Ama burada durum “KeyStore JKS uygulama bulunamadı” alıyorum tarafından anahtar deposunun getInstance için “JKS”() geçirerek çalıştı.

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); 

InputStream instream = mContext.getAssets().open("somename.jks"); 

try { 
    trustStore.load(instream, "password".toCharArray()); 
} finally { 
    try { 
     instream.close(); 
    } catch(Exception ignore) { 
    } 
} 

bu sorunu çözmek için bana yol ediniz: Burada

kod parçasıdır.

+0

"jks" maddeleri işlemek için gerekecek varsayılan olarak görünmektedir. Bu KeyStore, "jks" türünde ise, anahtarın ŞifreliPrivateKeyInfo olarak PKS # 8 standardına uygun olarak kodlanması gerekir. buradan alınmıştır http://developer.android.com/reference/java/security/KeyStore.html#getType() ve http://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html –

cevap

23

Ben en azından çalışmış (Hala Portecle

BKS için JKS onu dönüştürmek için bir cazibe gibi çalışması gerekir kullanabilirsiniz ... 'sadece' BouncyCastle anahtar depolarını (BKS olarak da bilinir) Android desteğini düşünüyorum ! bana bir BKS biçime benim .crt saklamak çalışırken;) kolayca burada

'sadece' anlamı,: p, başka

+1

Yup, JKS bir güneş/oracle-tescilli formatı ve sanırım Google birkaç daha anlamsız dava gibi hissetmedim. – Jens

+0

@Cehm söylediğin doğru, android sadece BKS'yi destekliyor. BKS anahtar deposunu sunucu ekibinden aldım ve aynı kod parçasıyla çekicilik gibi çalıştı. – sankar

+0

evet, android JKS'yi desteklemiyor gibi görünüyor .. ayrıca KeyStore.getDefaultType(); "BKS" –