首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BouncyCastle AttributeCertificate到文件之间的相互转换

BouncyCastle AttributeCertificate到文件之间的相互转换
EN

Stack Overflow用户
提问于 2016-03-31 03:22:41
回答 2查看 111关注 0票数 2

有没有人知道如何将属性证书写入文件。以及读取byte[]并将其转换为属性证书?

EN

回答 2

Stack Overflow用户

发布于 2017-06-13 16:54:34

可以使用证书的编码:

代码语言:javascript
复制
X509V2AttributeCertificate certitificate = new X509V2AttributeCertificate(attributeCertificateHolder.getEncoded());

// Store to file
String fileName = "test.txt";
FileOutputStream fos = new FileOutputStream(fileName);
fos.write(certitificate.getEncoded());
fos.close();

// Read from file
byte[] readCertificate = Files.readAllBytes(new File(fileName).toPath());
X509V2AttributeCertificate decodedCertificate = new X509V2AttributeCertificate(readCertificate);

还有另一个选项可以读取字节数组并将其解码为证书:

代码语言:javascript
复制
X509AttrCertParser parser = new X509AttrCertParser();
parser.engineInit(new FileInputStream(fileName));
X509AttributeCertificate certificate = (X509AttributeCertificate) parser.engineRead();

毕竟,X509AttributeCertificate是有问题的,因为它已被弃用。到目前为止,我还没有找到任何解决方案。此解决方案的提示取自Bouncycastle: X509CertificateHolder to X509Certificate?

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 19:45:03

如果您使用bouncy-castle自己生成属性证书,则最有可能使用的是X509AttributeCertificateHolder。在这种情况下,您可以使用JcaPEMWriter以PEM格式编写属性证书。

代码语言:javascript
复制
// create the attrCertHolder
X509AttributeCertificateHolder attrCertHolder = ...

// write as pem format
JcaPEMWriter pemWriter = new JcaPEMWriter(new FileWriter("<directory-path>/attribute_cert.pem"));
pemWriter.writeObject(attrCertHolder);
pemWriter.flush();

要从文件中检索证书,请使用PEMParser

代码语言:javascript
复制
PEMParser pemParser = new PEMParser(new FileReader("<directory-path>/attribute_cert.pem"));
X509AttributeCertificateHolder attrCertHolderRetrived = (X509AttributeCertificateHolder) pemParser.readObject();

比较它们是否相等:

代码语言:javascript
复制
// Compare the encoded byte arrays and not with equals() method
boolean equals = Arrays.equals(attrCertHolder.getEncoded(), attrCertHolderRetrived.getEncoded());
Preconditions.checkArgument(equals, "original and retrived attribute certs do not match");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36317865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档