Создание цифровых сертификатов с помощью Bouncycastle

После некоторых исследований я определил, что для программного создания и подписи сертификатов в java мне нужна библиотека bouncycastle.

К сожалению, оказалось, что совсем недавно библиотека подверглась капитальному ремонту. Большая часть их классов теперь устарела, и все учебники и примеры кода, которые я могу найти, которые достаточно просты для понимания, устарели вместе с ними.

Я относительно новичок в криптографии. Вооружившись только базовыми знаниями и нечетким представлением о том, чего я на самом деле пытаюсь достичь, я прошерстил устаревшие учебные пособия и документацию Bouncycastle с предполагаемыми знаниями, и это был трудный опыт.

Существуют ли какие-либо простые для понимания, актуальные учебные пособия по Bouncycastle или альтернативные библиотеки, на которые мне следует обратить внимание? Или мне следует стиснуть зубы, игнорировать предупреждения об устаревании и надеяться на лучшее?


person Numeron    schedule 16.08.2012    source источник
comment
Это или вы можете взглянуть на EJBCA, либо на исходный код, либо вы можете использовать его как сервис. Вы уверены, что вам нужно генерировать сертификаты из кода? Есть много других вариантов создания сертификатов.   -  person Maarten Bodewes    schedule 16.08.2012
comment
Я разрабатываю сервер, который обеспечивает аутентификацию клиентов, чтобы они могли затем проверять друг друга в среде p2p без требования, чтобы указанный сервер всегда был доступен. Приветствуется другой вариант. Я посмотрю на EJBCA и прокомментирую позже.   -  person Numeron    schedule 17.08.2012


Ответы (2)


Его немного сложно найти, но в вики bouncycastle есть короткая, но интересная документация. В частности, этот первый пример на этой странице под названием Пример простого оператора поможет вам начать работу.

Еще одна прекрасная альтернатива — просто использовать версию 1.46 библиотеки, последнюю версию, использующую старый API.

person President James K. Polk    schedule 16.08.2012
comment
Извините, что потребовалось время, чтобы принять. В итоге я использовал 1.46 с помощью вики и онлайн-руководств, и как только я освоил это, я перенес свой код вперед. - person Numeron; 31.08.2012

Вам действительно нужно использовать Bouncycastle напрямую или вы не можете использовать его в качестве поставщика криптографических услуг? Таким образом, вам не нужно использовать BCs API. См. Справочное руководство по JCA. Я использую для некоторого шифрования эти строки:

static {
  Security.addProvider(new BouncyCastleProvider());
}

public void someMethod() {
  KeyFactory fact = KeyFactory.getInstance("RSA", "BC");
  Key key = fact.generatePublic(PUB_KEY_SPEC);
  // do stuff
}

Вы можете внимательно изучить CertificateFactory.

person DaJunkie    schedule 16.08.2012
comment
Этот класс определяет функциональность фабрики сертификатов, которая используется для создания сертификатов, путей сертификации (CertPath) и объектов списка отзыва сертификатов (CRL) из их кодировок. Более того, он также не спрашивал, как создать ключ из его кодировки. - person Maarten Bodewes; 17.08.2012