[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PKCS7 в php
lexus1990
Добрый день, есть задача:

Формирование криптопакета. Сформированный документ помещается в криптоконтейнер формата PKCS#7 согласно стандарту http://www.ietf.org/rfc/rfc5652.txt. Криптоконтейнер должен содержать АСП (цифровую подпись, аналог собственноручной подписи). Криптоконтейнер не должен содержать цепочки сертификации. Компрессия данных не используется. Шифрование не используется. Криптопакет должен быть закодирован в формате PEM (OpenSSL). Сертификат Контргента, используемый при изготовлении криптопакета, должен соответствовать стандарту X.509 Version 3 (http://www.ietf.org/rfc/rfc2459.txt).

1. Пробовал зашифровать
openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key, array())
Шифрует S/MIME-сообщение. Где msg.txt - кодируемые данные, enc.txt - куда писать, $key - сертификат, сформированный по моему запросу организацией в формате cer.
Результат: false на выходе
2. Пробовал
openssl_pkcs7_sign("msg.txt", "enc.txt", "platron.cer", array("private.key","password"), array())
-
Результат: false на выходе
3. Система предоставила пример реализации на php. Там есть вот такая функция с вызовом openssl:
protected function sign($source, $certificate, $privkey) {
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w")); // stderr is a file to write to

$process = proc_open(
'openssl smime -sign -signer ' . $certificate .
' -inkey ' . $privkey .
' -nochain -nocerts -outform PEM -nodetach',
$descriptorspec, $pipes);
...

}

На строчке openssl smime - висит скрипт и выполняется бесконечно.

Входящие данные - xml объект. На вход в функции передается как $objXml->asXml();


Подскажите, может есть более простой способ реализации?
Может быть прошлые способы не работают из-за того, что не подключены какие-то дополнительные библиотеки?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.