ariane/app/src/main/java/oppen/ariane/io/keymanager/ArianeKeyManager.kt

43 lines
1.5 KiB
Kotlin

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
}
}