mirror of https://git.sr.ht/~oppen/ariane
43 lines
1.5 KiB
Kotlin
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
|
|
}
|
|
} |