package oppen.ariane.io.keymanager import android.content.Context import oppen.ariane.R import java.io.ByteArrayInputStream import java.io.InputStream import java.security.KeyStore import javax.net.ssl.KeyManagerFactory class ArianeKeyManager { //todo - add other methods to update state //If the user has a key loaded load it here - or else return null fun getFactory(): KeyManagerFactory? { val hasLoadedKey = false return when { hasLoadedKey -> { val keyStore: KeyStore = KeyStore.getInstance("BKS")//or "pkcs12"v? val inputStream: InputStream = ByteArrayInputStream("dummy".toByteArray()) keyStore.load(inputStream, "yourKeyStorePassword".toCharArray()) inputStream.close() val keyManagerFactory: KeyManagerFactory = KeyManagerFactory.getInstance("X509") keyManagerFactory.init(keyStore, "yourKeyStorePassword".toCharArray()) keyManagerFactory } else -> null } } fun getFactoryDemo(context: Context): KeyManagerFactory? { val keyStore: KeyStore = KeyStore.getInstance("pkcs12")//or "pkcs12"v? keyStore.load(context.resources.openRawResource(R.raw.cert), "PASSWORD".toCharArray()) val keyManagerFactory: KeyManagerFactory = KeyManagerFactory.getInstance("X509") keyManagerFactory.init(keyStore, "PASSWORD".toCharArray()) return keyManagerFactory } }