Я подписал XML, но я не знаю, как включить элемент KeyValue в подпись. Наличие некоторой документации позволит сэкономить много времени.Есть ли какая-либо документация для xmlseclibs?
ниже код (если вы заинтересованы) является то, что мне удалось сделать с xmlseclibs до сих пор:
<?php
require('xmlseclibs.php');
XML строка
$getToken = '<getToken>
<item>
<Semilla>Random string</Semilla>
</item>
</getToken>';
Создание объекта XML (подписать)
$getToken_DOMDocument = new DOMDocument();
$getToken_DOMDocument -> loadXml($getToken);
Создание объекта подписи с помощью xmlseclibs
$getToken_XMLSecurityDSig = new XMLSecurityDSig();
$getToken_XMLSecurityDSig -> setCanonicalMethod(XMLSecurityDSig::C14N);
Попытка отключить дц: префикс, который не работал
$options['prefix'] = '';
$options['prefix_ns'] = '';
$options['force_uri'] = TRUE;
$options['id_name'] = 'ID';
$getToken_XMLSecurityDSig -> addReference($getToken_DOMDocument, XMLSecurityDSig::SHA1, array('http://www.w3.org/2000/09/xmldsig#enveloped-signature', 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'), $options);
Доступ необходимые ключевые данные
$XMLSecurityKey = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array('type'=>'private'));
$XMLSecurityKey -> loadKey('../../DTE/certificado/firma/certificado.pem', TRUE);
/* if key has Passphrase, set it using $objKey -> passphrase = <passphrase> */
Подписание объекта XML
$getToken_XMLSecurityDSig -> sign($XMLSecurityKey);
Добавление открытый ключ
$getToken_XMLSecurityDSig -> add509Cert(file_get_contents('../../DTE/certificado/firma/certificado.pem'));
прилагая оболочечную подпись к объекту XML
$getToken_XMLSecurityDSig -> appendSignature($getToken_DOMDocument -> documentElement);
Сохранению Тоа файл подписан код XML
$getToken_DOMDocument -> save('sign-basic-test.xml');
?>
Additionaly также хотел бы из этой библиотеки:
- Know официальных и надежный репозиторий, чтобы гарантировать, что библиотека не повреждена.
- Отключение префикса «ds:» (поскольку ни пример, ни документация XML, который я производю, не включают такой префикс).
- Строит каждый символ X в значениях Base64.
- Полный отступ (в противном случае нет вообще).
Я получил библиотеку из enter link description here
Заранее спасибо.
Спасибо, это помогает, но это еще не формальное документация должна иметь полную карту библиотеки, а затем идти прямо к тому, что вам нужно, и, с другой стороны, знать ограничения библиотеки. Я совершенно уверен, что такой вещи не существует (на сегодняшний день), но мне пришлось сделать мою последнюю попытку. – mikl