Хорошую документацию можно найти на сайте разработчика Android: https://developer.android.com/training/articles/keystore#kotlin
Есть примеры того, как генерировать, хранить в хранилище ключей, подписывать и проверять данные.
EDITED
Например, чтобы создать KeyPair
val kpg: KeyPairGenerator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_EC,
"AndroidKeyStore")
val parameterSpec: KeyGenParameterSpec = KeyGenParameterSpec.Builder("alias",
KeyProperties.PURPOSE_SIGN).run {
setDigests(KeyProperties.DIGEST_SHA256)
build()
}
kpg.initialize(parameterSpec)
val keyPair = kpg.generateKeyPair()
Если вы хотите поделиться своим открытым ключом с сервером
val pubKey = keyPair.public
val pubKeyString = String(Base64.encode(pubKey.encoded, 0))
Данные подписи
val signature: ByteArray = Signature.getInstance("SHA256withECDSA").run {
initSign(privKey)
update(data)
sign()
}
Проверка данных
val valid: Boolean = Signature.getInstance("SHA256withECDSA").run {
initVerify(pubKey)
update(data)
verify(signature)
}