我们如何获取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
我需要在我的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) 请帮助我解决此代码中的歧义调用。
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)