Я пытаюсь зашифровать / дешифровать строку с помощью Android KeyStore, и большая часть ее настроена правильно, но не могу понять, как сертификаты с истекшим сроком действия должны обрабатываться. Вот фрагмент поколения пары ключей:
val startDate = Calendar.getInstance()
val endDate = Calendar.getInstance()
endDate.add(Calendar.MINUTE, 1)
val spec = KeyPairGeneratorSpec.Builder(context)
.setAlias(ALIAS)
.setSubject(X500Principal(X500_PRINCIPAL))
.setSerialNumber(BigInteger.ONE)
.setStartDate(startDate.time)
.setEndDate(endDate.time)
.build()
val keyPairGenerator = KeyPairGenerator.getInstance(KEYPAIR_GEN_ALGORITHM, KEYSTORE_PROVIDER)
keyPairGenerator.initialize(spec)
keyPairGenerator.genKeyPair()
(срок действия сертификата истек через 1 минуту после создания сертификата, чтобы его можно было легко проверить.)
Вот фрагмент расшифровки:
val privateKeyEntry = keyStore.getEntry(ALIAS, null) as KeyStore.PrivateKeyEntry
val privateKey = privateKeyEntry.privateKey
val cipher = Cipher.getInstance(CIPHER_ALGORITHM)
cipher.init(Cipher.DECRYPT_MODE, privateKey)
...
Даже после истечения срока действия сертификата (и при отладке я вижу, что в нем указан ожидаемый срок окончания действия), расшифровка продолжается в обычном режиме. Означает ли это, что сертификаты с истекшим сроком действия не обрабатываются автоматически (т. Е. Исключение выдается каким-либо из этих классов или что-то в этом роде), и что я должен вручную проверять дату истечения срока действия и обрабатывать при необходимости?