- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一些辅助方法来创建(和签署)CSR、自签名证书等...我已经使用现已弃用的功能实现了一些方法。为了跟上最新的步伐,我将 bouncycaSTLe 升级到了 1.47,这似乎有很大不同,我想知道两件事:
1)我似乎无法找到简明的示例列表。由于现在需要增加冗长的代码来完成与以前类似的事情,因此非常受欢迎。
2) 在混合经典 JCE 内容的同时使用 bouncycaSTLe 似乎非常困难,至少比以前困难得多。这有什么原因吗?
作为后者的一个例子,以生成 csr 为例,以前就这么简单:
org.bouncycastle.jce.PKCS10CertificationRequest request = new org.bouncycastle.jce.PKCS10CertificationRequest(type.toString(), subject, pair.getPublic(), null, pair.getPrivate());
当主题是“javax.security.auth.x500.X500Principal”时,私钥和公钥来自一般的“java.security.KeyPair”等。
现在我有类似的东西:
public byte[] generatePKCS10(KeyPair pair, SignatureType type, X500Principal subject) throws IOException {
PKCS10CertificationRequestBuilder builder = new PKCS10CertificationRequestBuilder(
new X500Name(subject.getName()),
SubjectPublicKeyInfo.getInstance(pair.getPublic())
);
AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find(type.toString());
AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
AsymmetricKeyParameter keyParam = PrivateKeyFactory.createKey(pair.getPrivate().getEncoded());
try {
ContentSigner signer = new BcRSAContentSignerBuilder(sigAlgId, digAlgId).build(keyParam);
PKCS10CertificationRequest csr = builder.build(signer);
ContentVerifierProvider verifier = new JcaContentVerifierProviderBuilder().setProvider(new BouncyCastleProvider()).build(pair.getPublic());
csr.isSignatureValid(verifier);
return csr.getEncoded();
}
catch (OperatorCreationException e) {
throw new IOException(e);
}
catch (PKCSException e) {
throw new IOException(e);
}
}
我是否缺少一整套简单的转换实用程序或重载方法或特定于 JCE 的实现?许多谷歌搜索突出显示旧的(阅读:已弃用的)做事方式并没有帮助。
最佳答案
在发布本文后不久,我偶然发现了一个符合 JCE 的解决方案。看起来他们的很多类都有一个特定于 JCA 的扩展来处理所有必要的转换。例如,“X509v1CertificateBuilder”可以实例化为“new JcaX509v1CertificateBuilder()”,它采用 JCE 参数而不是 bouncycaSTLe 特定的参数。
对于上面的例子:
PKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(
subject,
pair.getPublic()
);
我希望这种模式能够成立......
关于java - 充气城堡 1.47 和标准 JCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470188/
想问一下。有什么区别: LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(Conte
我正在使用 RecyclerView 来保存 CardView 列表。在我运行 Lollipop 5.0.2 的设备上,应用程序运行良好并且列表正确显示数据。然而,在其他 Lollipop 之前的设备
简单:我想用 1 个宽度为 0dp 的子项来膨胀父项。 父级 xml: 子类: public class KeyButton extends RelativeLayout implements Vi
我正在尝试创建一个 android 键盘,现在我希望它只是膨胀,即显示来自 main.xml 的线性布局 这是java文件 package keyboard.rob.com; import ... p
我有以下适配器 public class CardAdapter extends RecyclerView.Adapter{ List list; int id; Context context;
我的 main.xml 中目前有一个 DrawerLayout。 AppBarLayout 中包含了一个 Toolbar,然后是一个简单的 LinearLayout 来交换 fragment 。 我导
由于不推荐使用 Kotlin Synthetics,我们正在迁移到 ViewBinding。 我已经尝试了很多关于 ViewStub、ViewBinding 的谷歌搜索和阅读文档,并为 Fragmen
我无法使用 LayoutInflater 扩充 xml(包含 QuickContactBadge 的布局)文件,以便在 ListView 中使用它。它不会产生编译/运行时错误或正确的预期输出。从 XM
我是一名优秀的程序员,十分优秀!