como assinar digitalmente um arquivo em PHP

Fiz umdo utilizado tabela no meu banco de dados com colunas diferentes para armazenar as informações dos usuários. Também adicionei duas colunaschave públic echave privad. Quando um usuário se registra, suas informações serão inseridas na tabela. Além disso, estou usando:

// Create the keypair
$res=openssl_pkey_new();

// Get private key
openssl_pkey_export($res, $privatekey);

// Get public key
$publickey=openssl_pkey_get_details($res);
$publickey=$publickey["key"];

para criar um par de chaves aleatório e dar ao usuário para que cada usuário tenha um par de chaves. Quero que meus usuários tenham capacidade de assinatura digital; portanto, quando eles carregam um arquivo, eles o assinam.

Decidi assinar um arquivo de amostra (msg.txt) primeiro para ver se posso e prosseguir. Parece simples:

openssl_pkcs7_sign("msg.txt", "signed.txt", "signing_cert.pem",
array("private_key.pem", "mypassphrase"),
array()
);

O problema é: o que são signature_cert.pem e private_key.pem? Colei minha chave pública gerada em signature_cert.pem e a privada em private_key.pem, mas vejo este erro:

Warning: openssl_pkcs7_sign() [function.openssl-pkcs7-sign]: error getting 
private key in /home/ofathian/public_html/msc/ebook/mine/assymetric-test.php 
on line 40

ualquer opinião é apreciad

questionAnswers(4)

yourAnswerToTheQuestion