New comments
This commit is contained in:
parent
34300daf3b
commit
e53d501af3
1 changed files with 8 additions and 8 deletions
|
@ -10,12 +10,12 @@ import java.security.*
|
||||||
|
|
||||||
class Credentials {
|
class Credentials {
|
||||||
|
|
||||||
private val provider = "AndroidKeyStore"
|
private val provider = "AndroidKeyStore" // location of the key
|
||||||
private val aliasKeyStore = "MobiDL"
|
private val aliasKeyStore = "MobiDL" // name of the key
|
||||||
private val transformation = "RSA/ECB/PKCS1Padding"
|
private val transformation = "RSA/ECB/PKCS1Padding" // 'type' of the key
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.M)
|
@RequiresApi(Build.VERSION_CODES.M)
|
||||||
fun generateKey() {
|
fun generateKey() { // generate RSA Keys
|
||||||
val keyPairGenerator = KeyPairGenerator.getInstance(
|
val keyPairGenerator = KeyPairGenerator.getInstance(
|
||||||
KeyProperties.KEY_ALGORITHM_RSA, provider
|
KeyProperties.KEY_ALGORITHM_RSA, provider
|
||||||
)
|
)
|
||||||
|
@ -30,26 +30,26 @@ class Credentials {
|
||||||
keyPairGenerator.generateKeyPair()
|
keyPairGenerator.generateKeyPair()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPublicKey(): PublicKey {
|
private fun getPublicKey(): PublicKey { // Get the Public RSA key from the Android KeyStore
|
||||||
val keyStore: KeyStore = KeyStore.getInstance(provider)
|
val keyStore: KeyStore = KeyStore.getInstance(provider)
|
||||||
keyStore.load(null)
|
keyStore.load(null)
|
||||||
return keyStore.getCertificate(aliasKeyStore).publicKey
|
return keyStore.getCertificate(aliasKeyStore).publicKey
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPrivateKey(): PrivateKey {
|
private fun getPrivateKey(): PrivateKey { // Get the Private RSA key from the Android KeyStore
|
||||||
val keyStore: KeyStore = KeyStore.getInstance(provider)
|
val keyStore: KeyStore = KeyStore.getInstance(provider)
|
||||||
keyStore.load(null)
|
keyStore.load(null)
|
||||||
return keyStore.getKey(aliasKeyStore, null) as PrivateKey
|
return keyStore.getKey(aliasKeyStore, null) as PrivateKey
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun encrypt(message: String): ByteArray {
|
private fun encrypt(message: String): ByteArray { // Encrypt a string with the public RSA key
|
||||||
val cipher = Cipher.getInstance(transformation)
|
val cipher = Cipher.getInstance(transformation)
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, getPublicKey())
|
cipher.init(Cipher.ENCRYPT_MODE, getPublicKey())
|
||||||
|
|
||||||
return cipher.doFinal(message.toByteArray())
|
return cipher.doFinal(message.toByteArray())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun decrypt(message: ByteArray): String {
|
private fun decrypt(message: ByteArray): String { // Decrypt an encrypted string with the private RSA key
|
||||||
val cipher = Cipher.getInstance(transformation)
|
val cipher = Cipher.getInstance(transformation)
|
||||||
cipher.init(Cipher.DECRYPT_MODE, getPrivateKey())
|
cipher.init(Cipher.DECRYPT_MODE, getPrivateKey())
|
||||||
|
|
||||||
|
|
Reference in a new issue