Я работаю с библиотеками BouncyCastle: bcprov-jdk16-146.jar и bcpkix-jdk15on-1.54.jar. И я пытаюсь запустить следующий фрагмент кода, где последняя строка бросает java.lang.NoSuchFieldError: gostR3410_94
. Я попытался изучить эту проблему, но ничего не нашел - я не уверен, почему я получаю эту проблему? Ошибка возникает в статическом инициализаторе для DefaultSignatureAlgorithmIdentifierFinder
. Используя java8, я добавил bouncycastle в качестве моего поставщика безопасности в java.security.bouncy castle DefaultSignatureAlgorithmIdentifierFinder NoSuchFieldError: gostR3410_94
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyPair kp = RSAKeyGenerator.generate2();
AsymmetricKeyParameter privateKey =
(AsymmetricKeyParameter) PrivateKeyFactory.createKey(kp.getPrivate().getEncoded());
AsymmetricKeyParameter publicKey =
(AsymmetricKeyParameter) PublicKeyFactory.createKey(kp.getPublic().getEncoded());
X500NameBuilder x500NameBld = new X500NameBuilder(RFC4519Style.INSTANCE);
x500NameBld.addRDN(RFC4519Style.c, "AU");
x500NameBld.addRDN(RFC4519Style.o, "The Legion of the Bouncy Castle");
x500NameBld.addRDN(RFC4519Style.l, "Melbourne");
x500NameBld.addRDN(RFC4519Style.st, "Victoria");
x500NameBld.addRDN(PKCSObjectIdentifiers.pkcs_9_at_emailAddress, "[email protected]");
X500Name subject = x500NameBld.build();
PKCS10CertificationRequestBuilder requestBuilder = new PKCS10CertificationRequestBuilder(subject, new SubjectPublicKeyInfo(ASN1Sequence.getInstance(kp.getPublic().getEncoded())));
DefaultSignatureAlgorithmIdentifierFinder sigAlgFinder = new DefaultSignatureAlgorithmIdentifierFinder();
Из javadocs: «Обычно эта ошибка улавливается компилятором, эта ошибка может возникать только во время выполнения, если определение класса несовместимо изменилось». Вы делаете что-то смешное с отражением и/или динамической загрузкой классов? –
Nope. Он является внутренним для классных классов замка. Но я выяснил свою проблему: мне нужно было использовать bcprov-jdk15on-1.54.jar - bcprov-jdk16-146.jar несовместим! – Nena
Прошу прощения, я полностью пропустил это в вашем описании. Да. Отправьте это как ответ, пожалуйста. –