Создание спецификаций для шифрования Bouncy Castle - PullRequest
1 голос
/ 23 апреля 2010

Я пытаюсь создать самозаверяющий сертификат для шифрования электронной почты с использованием bouncycaste.

Как лучше всего создать сертификат?

Я пытался использовать openssl, но у меня были проблемы с сертификатом.

Вот код, который я использую для шифрования, я использую 3des.

SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator();
gen.addKeyTransRecipient(x509Cert); // adds an X509Certificate

MimeBodyPart encData = 
    gen.generate(mimeBodyPart, SMIMEEnvelopedGenerator.DES_EDE3_CBC, "BC");

EDIT: Извините за то, что я не уверен, но сообщение об ошибке, которое я получаю, кажется не очень полезным.

Сообщение выглядит следующим образом:

org.openas2.WrappedException: org.bouncycastle.mail.smime.SMIMEException:
 key invalid in message.

Это выдается, когда я вызываю метод SMIMEEnvelopedGenerator.generate.

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

Ответы [ 2 ]

2 голосов
/ 23 апреля 2010

Я бы использовал keytool или openssl для создания самозаверяющего сертификата.Если у вас есть проблемы, то опубликуйте их, не просто говорите, что у вас есть проблемы.Если вы хотите сгенерировать сертификат из своего кода Java, используйте org.bouncycastle.x509.X509V3CertificateGenerator class

1 голос
/ 23 апреля 2010

С openssl должно быть все в порядке;эту команду я бы использовал для создания самоподписанного сертификата:

openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout mycert.pem -out mycert.pem

Это создаст файл с именем mycert.pem, который будет содержать как закрытый ключ, так и самозаверяющий сертификат.Обратите внимание, что в этом примере ключ не зашифрован, что хорошо для целей тестирования.И ключ, и сертификат имеют кодировку PEM и включают стандартные строки верхнего и нижнего колонтитула.

...