Как создать квалифицированное устройство для создания электронной подписи - PullRequest
0 голосов
/ 10 октября 2018

QSCD может быть развернут как облачная служба, если он соответствует требуемым стандартам.Я не собираюсь создавать такой по закону, а скорее чтобы мое программное обеспечение могло доказать, что сертификат исходит от нас.

Идея состоит в том, чтобы создать PKI, где QSCD «выдает» пользователю ключи, которые затем электронно подписывают файл PDF.Если открытый ключ может декодировать файл, это доказывает, что он был получен от этого пользователя (в данном случае это будет учетная запись бота, подписывающая сертификаты).

Я нашел онлайн-решения, которыедать вам право платить за такие услуги, но хотел знать, как создать собственное решение.Я сталкивался с использованием openssl_* для достижения этой цели.Я взглянул на несколько ответов, чтобы найти, как создать эти ключи .

Часть, на которой я сейчас застрял, - это как загрузить документ PDF и использовать закрытый ключ для электронной подписи.затем он экспортирует новый файл PDF, а затем как его расшифровать с помощью открытого ключа, гарантируя, что он не был подделан.

Моя текущая попытка выглядит следующим образом:

$config = array(
    "digest_alg" => 'sha512',
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
);

$keyPair = openssl_pkey_new($config);
$privateKey = NULL;
openssl_pkey_export($keyPair, $privateKey);
$keyDetails = openssl_pkey_get_details($keyPair);
$publicKey = $keyDetails['key'];

openssl_pkcs7_sign("toSign.pdf", "signed.pdf"); // how to sign using the private key?
penssl_public_decrypt("signed.pdf", $publicKey);
...