how para firmar digitalmente un archivo en PHP

Hice unausuari table en mi DB con diferentes columnas para guardar la información de los usuarios. También he agregado dos columnasLlave públic yllave privad. Cuando un usuario se registra, su información se insertará en la tabla. Además estoy 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 crear un par de claves al azar y dárselo al usuario para que cada usuario tenga un par de claves. Quiero que mis usuarios tengan la capacidad de firma digital, así que cuando cargan un archivo, lo firman.

Decidí firmar un archivo de muestra (msg.txt) primero para ver si puedo y luego proceder. Parece sencillo:

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

El problema es: ¿qué son Signature_cert.pem y private_key.pem? Pegué mi clave pública generada en signature_cert.pem y la privada en private_key.pem, pero veo este error:

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

Cualquier opinión es apreciada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta