我有一个 X509CertificateObject,一个匹配的 RSAPublicKey,并设法创建一个字节数组,其中包含某个消息对象的有效数字证书,也作为字节数组。
不幸的是,我正在构建的系统只接受CMSSignedData
对象作为输入。如何将我的基本构建块转换为这样一个有效的 CMSSignedData
对象?
背景:根据这个示例(摘要是SHA512),我正在试用Java Bouncy Castle RSA盲签名,需要将结果输入到标准签名处理中。
首先,您可能希望用私钥签署您的数据。这个想法是,签名应该是只有你能创造的东西。剩下的应该如下:
X509Certificate signingCertificate = getSigningCertificate();
//The chain of certificates that issued your signing certificate and so on
Collection<X509Certificate> certificateChain = getCertificateChain();
PrivateKey pk = getPrivateKey();
byte[] message = "SomeMessage".getBytes();
CMSSignedDataGenerator generator = new CMSSignedDataGenerator();
certificateChain.add(signingCertificate);
generator.addCertificates(new CollectionStore(certificateChain));
JcaDigestCalculatorProviderBuilder jcaDigestProvider = new JcaDigestCalculatorProviderBuilder();
jcaDigestProvider.setProvider(new BouncyCastleProvider());
JcaSignerInfoGeneratorBuilder singerInfoGenerator = new JcaSignerInfoGeneratorBuilder(jcaDigestProvider.build());
AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1withRSA");
AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
AsymmetricKeyParameter privateKeyParam = PrivateKeyFactory.createKey(pk.getEncoded());
ContentSigner cs = new BcRSAContentSignerBuilder(sigAlgId, digAlgId).build(privateKeyParam);
SignerInfoGenerator sig = singerInfoGenerator.build(cs, signingCertificate);
generator.addSignerInfoGenerator(sig);
CMSSignedData data = generator.generate(new CMSProcessableByteArray(message), true);
我想填充Javapojo类与mqtt消息有效载荷在一个Springmvc应用程序。我的代码是: MQTT MessagePayload是{“name”:“abc”,“age”:32},但当它在变量MessagePayload中转换为字符串时,它显示为类似{name:abc,age:32}。你看,去掉所有的双引号。当转到try块时,会抛出一个错误com。fasterxml。杰克逊。果心JsonPar
Signing messages can be used for various method of authentication and off-chain operations, which can be put on-chain if necessary. 字符串签名 By allowing a user to sign a string, which can be verified on-
我正在尝试将单个输入消息转换为多个消息。我有一个带有以下签名的方法: 类类似于: 对于中的每个,我想创建一个的实例。我如何做到这一点并处理
我创建了RabbitListener来从RabbitMQ队列获取消息。 我的rabbitMQ消息: 不幸的是,在从Message转换为Transfer Transfer Object时引发了异常。 整个消息日志:https://pastebin.com/raw/47lq7dyd
我正在使用apache camel(Fuse 2.10.x)和soap over http和soap over JMS。JMS消息由对象消息转换为字节消息格式,这就造成了消息读取的问题。 我正在JBoss5.0GA环境中使用用于websphere MQ的JNDI连接。 我们遇到了IBM属性的另一个问题,通过删除属性解决了这个问题。我们还有camel header属性来设置消息
我正在尝试使用.NET(CNG提供商)的现有ECDSA密钥,以便使用Bouncy Castle对数据进行签名,然后在两种签名格式(P1363和ASN.1)之间进行转换。然而,我总是得到不同的签名。我不太确定转换是否不正确,或者我是否使用了不正确的方法来使用Bouncy Castle读取.NET密钥。 由于某些原因,和已经不同,我假设问题甚至可能在转换之前就出现了。我已经看过许多StackOverf