Генерация пары ключей RSA Publi c -Private с настройками заполнения "ENCRYPTION_PADDING_RSA_PKCS1" ниже уровня API <23 - PullRequest
0 голосов
/ 04 марта 2020

Я использую этот код для генерации моей пары ключей RSA на уровне API> = 23

 KeyPairGenerator spec = KeyPairGenerator.getInstance(
                            KeyProperties.KEY_ALGORITHM_RSA, Constants.KEYSTORE_NAME);

                    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(
                            keyStoreAlias, KeyProperties.PURPOSE_DECRYPT | KeyProperties.PURPOSE_ENCRYPT)
                            .setKeySize(2048)
                            .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
                            .setKeyValidityStart(notBefore.getTime())
                            .setKeyValidityEnd(notAfter.getTime())
                            .setCertificateSubject(new X500Principal("CN=test"))
                            .setCertificateSerialNumber(BigInteger.ONE)
                            .build();

                    spec.initialize(keyGenParameterSpec);
KeyPair keyPair = spec.generateKeyPair();

Если я пытаюсь создать этот код на уровне API <23, компилятор говорит: «Для вызова требуется как минимум API Уровень 23 ". </p>

Как я могу преобразовать этот код, чтобы он работал с API-уровнем <23? </p>

setKeySize, setEncryptionPaddings .. Эти функции недоступны API-уровень <23. Как я могу установить дополнения шифрования, например, на уровне API 14? </p>

1 Ответ

0 голосов
/ 04 марта 2020

Вы можете использовать Spongy-Castle для уровня <23. </p>

Проверьте этот ответ для более глубоких знаний по Android Crypto и JCE { ссылка }

...