SubjectKeyIdentifierExtension DerValue ошибка
Я хотел бы создать объект SubjectKeyIdentifierExtension.
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "SunRsaSign");
keyGen.initialize(2048, new SecureRandom());
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
SubjectKeyIdentifierExtension extension = new SubjectKeyIdentifierExtension(false, new KeyIdentifier(publicKey).getIdentifier());
Я даю всегда исключение с двумя сообщениями:
- java.io.IOException: дополнительные данные передаются конструктору DerValue
- java.io.IOException: DerInputStream.getLength(): lengthTag=8, слишком большой.item
Я использовал эти примеры:
- https://www.javatips.net/api/sun.security.x509.keyidentifier
- https://www.programcreek.com/java-api-examples/index.php?api=sun.security.x509.SubjectKeyIdentifierExtension
Кто-нибудь есть идеи, как я могу создать класс SubjectKeyIdentifierExtension без исключения.
модификация
Я могу сделать это с Bouncy Caste, но я бы хотел сделать это без BC.
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "SunRsaSign");
keyGen.initialize(2048, new SecureRandom());
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance(publicKey.getEncoded());
SubjectKeyIdentifier subjectKeyIdentifier = new BcX509ExtensionUtils().createSubjectKeyIdentifier(info);
SubjectKeyIdentifierExtension extension = new SubjectKeyIdentifierExtension(false, subjectKeyIdentifier.getEncoded());