Я хочу отправить зашифрованное письмо в java. BouncyCastle (выпуск 1.6.4), кажется, популярен для этого. В их примере «CreateLargeEncryptedMail. java» вы обнаружите:
/**
* a simple example that creates a single encrypted mail message.
* <p>
* The key store can be created using the class in
* org.bouncycastle.jce.examples.PKCS12Example - the program expects only one
* key to be present in the key file.
* <p>
* Note: while this means that both the private key is available to
* the program, the private key is retrieved from the keystore only for
* the purposes of locating the corresponding public key, in normal circumstances
* you would only be doing this with a certificate available.
*/
public class CreateLargeEncryptedMail
{
public static void main(
String args[])
throws Exception
{
if (args.length != 3)
{
System.err.println("usage: CreateLargeEncryptedMail pkcs12Keystore password inputFile");
System.exit(0);
}
//
// Open the key store
//
KeyStore ks = KeyStore.getInstance("PKCS12", "BC");
String keyAlias = ExampleUtils.findKeyAlias(ks, args[0], args[1].toCharArray());
Certificate[] chain = ks.getCertificateChain(keyAlias);
Но ks.getCertificateChain () не работает без личного ключа, и обычно у меня нет личного ключа получателя. В моих попытках он вернул ноль. Из документации
Возвращает цепочку сертификатов, связанную с данным псевдонимом. Цепочка сертификатов должна быть связана с псевдонимом с помощью вызова setKeyEntry или вызова setEntry с PrivateKeyEntry.
Но у меня нет личного ключа.
Другой способ - использовать CertificateFactory.getInstance("X.509");
. Есть ли способ расшифровки smime publi c ключевых данных .
Но я только прихожу к java.security.cert.CertificateParsingException: signed fields invalid
Обнаружено stackoverflow для этого исключения, но решение снова использует KeyStore.getCertificate()
.
У меня есть : сертификат, подходящий для SMIME в Windows доверенном хранилище. Сертификат работает в outlook. Я могу экспортировать сертификат в файл.
Я хочу : java объект типа Certificate (X509Certificate
), работающий для SMIME с BounceCastle.
Итак какой файл мне нужно создать с помощью какого инструмента и что делать в Java, чтобы инициализировать этот сертификат X509? Нужен ли мне единственный сертификат или цепочка в этом файле? Сертификат самоподписан.