小编the*_*s_r的帖子

如何使用x509证书生成数字签名?

我们如何获取x509data和x509certificate标记并将其附加到由以下代码生成的xml中

 String providerName = System.getProperty("jsr105Provider",
   "org.jcp.xml.dsig.internal.dom.XMLDSigRI");

 XMLSignatureFactory fac =
   XMLSignatureFactory.getInstance("DOM",
   (Provider) Class.forName(providerName).newInstance());

 Reference ref =
   fac.newReference("",
       fac.newDigestMethod(DigestMethod.SHA1, null),
           Collections.singletonList(
               fac.newTransform(Transform.ENVELOPED,(XMLStructure) null)), 
       null, null);

   SignedInfo si = fac.newSignedInfo
       (fac.newCanonicalizationMethod
         (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS, 
            (XMLStructure) null), 
        fac.newSignatureMethod(SignatureMethod.RSA_SHA1, 
            null),
        Collections.singletonList(ref));

   KeyPairGenerator kpg = 
       KeyPairGenerator.getInstance("RSA");
   kpg.initialize(512);
   KeyPair kp = kpg.generateKeyPair();

   KeyInfoFactory kif = fac.getKeyInfoFactory();
   KeyValue kv = kif.newKeyValue(kp.getPublic());

   KeyInfo ki = 
       kif.newKeyInfo(Collections.singletonList(kv));

   DocumentBuilderFactory dbf =
       DocumentBuilderFactory.newInstance();
   dbf.setNamespaceAware(true);
   Document doc1 = 
       dbf.newDocumentBuilder().
       parse(new FileInputStream("C:/Documents and Settings/sbtho/Desktop/downloads/samp.xml"));

   DOMSignContext dsc = new DOMSignContext
    (kp.getPrivate(), doc.getDocumentElement());


   XMLSignature signature = fac.newXMLSignature(si, ki); …
Run Code Online (Sandbox Code Playgroud)

java xml digital-certificate digital-signature x509certificate

5
推荐指数
1
解决办法
9769
查看次数

openssl_pkey_export和"无法从参数1获取密钥"

我需要在我的php项目中使用openssl,所以我使用openssl创建了一个测试php页面.但是,我不断收到这些错误,我不知道为什么.openssl已启用.

警告:openssl_pkey_export()[function.openssl-pkey-export]:无法从第18行的C:\ wamp\www\opensslsample\index.php中的参数1获取密钥

警告:openssl_pkey_get_details()期望参数1为资源,布线在第21行的C:\ wamp\www\opensslsample\index.php中给出

<?php
 //echo phpinfo();

   $privateKey = openssl_pkey_new(array(
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));

openssl_pkey_export($privateKey, $privkey,"123");

$pubkey=openssl_pkey_get_details($privateKey);
$pubkey=$pubkey["key"];
?>
Run Code Online (Sandbox Code Playgroud)

php openssl rsa

3
推荐指数
2
解决办法
9872
查看次数

如何删除歧义函数调用

请帮助我解决此代码中的歧义调用。

fac.newtransform()fac.new signedinfo()给出错误信息:

参照newTransform是模糊的,这两个方法newTransform(String,TransformParameterSpec)XMLSignatureFactory和法newTransform(String,XMLStructure)XMLSignatureFactory匹配

如何在中调用实际函数XMLSignatureFactory

   XMLSignatureFactory fac =XMLSignatureFactory.getInstance("DOM",
                (Provider) Class.forName(providerName).newInstance());

   Reference ref =fac.newReference("",fac.newDigestMethod(DigestMethod.SHA1, null),
    Collections.singletonList(fac.newTransform(Transform.ENVELOPED, null)),null, null);


   SignedInfo si = fac.newSignedInfo
       (fac.newCanonicalizationMethod
         (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS, 
             null), 
        fac.newSignatureMethod(SignatureMethod.DSA_SHA1, 
            null),
        Collections.singletonList(ref));
Run Code Online (Sandbox Code Playgroud)

java function digital-certificate digital-signature

3
推荐指数
1
解决办法
969
查看次数