Как добавить файл KeyStore, защищенный паролем, к zip в java - PullRequest
0 голосов
/ 13 сентября 2018

Я создал файл KeyStore, защищенный паролем

CertificateFactorycertFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(certyfikat);
X509Certificate cert = (X509Certificate)  
certFactory.generateCertificate(in);
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(null,null);
ks.setCertificateEntry("alias", cert);
FileOutputStream fos = new FileOutputStream("test.pfx");
ks.store(fos, "yourPassword".toCharArray());

Это правильный способ добавить защиту паролем в KeyStore?

Я хочу вернуть это в zip-файл. Я пробовал ZipOutputStream и ZipEntry, но использование ZipOutputStream.write () может обрабатывать только byte [].

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry entry = new ZipEntry("cert.pfx");
zos.putNextEntry(entry);
zos.write(ks???);

Как я могу преобразовать KeyStore в байт []?

Есть ли другой способ создать zip-архив с KeyStore?

Может быть, файл .pfx должен быть создан другим способом, а не с помощью класса KeyStore?

1 Ответ

0 голосов
/ 18 сентября 2018

Использование ByteArrayOutputStream вместо FileOutputStream должно работать.

Заменить

FileOutputStream fos = new FileOutputStream("test.pfx");
ks.store(fos, "yourPassword".toCharArray());

С

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ks.store(bos, "yourPassword".toCharArray());
byte keystore[] = bos.toByteArray();
...