openssl_pkcs7_sign

Descripción

Sintaxis de llamada

bool openssl_pkcs7_sign(string $ArchEntrada, string $ArchSalida, mixed $Certificado, mixed $Clave, array $Cabeceras[, int $Indicadores[, string $OtrosCerts]])

Parámetros de entrada

  • ArchEntrada: Camino y nombre del archivo que contiene el mensaje a firmar.
  • ArchSalida: Camino y nombre del archivo en el que se almacenará el resultado.
  • Certificado: Certificado X509 que se usará para firmar el mensaje.
  • Clave: Clave privada correspondiente al certificado anterior.
  • Cabeceras: Vector asociativo con los encabezados a incluir en el mensaje. Como mínimo deberá existir la clave To facilitando las direcciones de los destinatarios. Éstas pueden ser recuperadas de los certificados.
  • Indicadores: Este parámetro puede ser una combinación de indicadores (véase la tabla siguiente) que modificarán el algoritmo usado para firmar.
  • OtrosCerts: Camino y nombre de un archivo con certificados adicionales a incluir en el mensaje firmado y que permitirán al receptor realizar comprobaciones adicionales sobre la identidad del remitente.
Indicadores que modifican el proceso de cifrado/firmado
Constante Significado
PKCS7_BINARY Si la información a cifrar es binaria, no texto, debe activarse este indicador para evitar que se incluyan los saltos de carro habituales en los mensajes S/MIME
PKCS7_DETACHED Por defecto este indicador está activo, de forma que si el mensaje se cifra y además se firma, la firma es incluida como un texto separado y sin cifrar según el estándar MIME multipart/signed. Desactivándolo se consigue que la firma sea cifrada y unida al mensaje, lo cual es más seguro, pero no todos los clientes de correo podrán leerlo ya que no todos contemplan el uso de S/MIME
PKCS7_NOATTR Al firmar un mensaje normalmente se incluyen en la firma datos como la fecha y hora de la firma o los algoritmos que se contemplan. Activando este indicador no se incluirá dicha información
PKCS7_NOCERTS Cuando se firma un mensaje S/MIME se suele incluir en el mensaje cifrado el certificado del remitente, a fin de que el destinatario pueda verificarlo. Si se activa este indicador no se incluirá el certificado, por lo que el destinatario deberá obtenerlo por otros medios
PKCS7_NOCHAIN No encadenar la verificación de los certificados con los que se va a firmar
PKCS7_NOINTERN Cuando se descifra un mensaje S/MIME que viene firmado, normalmente se busca en el propio mensaje el certificado correspondiente para verificarlo a menos que se active este indicador
PKCS7_NOSIGS No intentar verificar las firmas incluidas en el mensaje a descifrar
PKCS7_NOVERIFY No verificar los certificados correspondientes a las firmas del mensaje a descifrar
PKCS7_TEXT Agrega al mensaje cifrado cabeceras en formato de texto simple o, en el caso de descifrar el mensaje, las elimina

Valor de retorno

  • bool: Devuelve TRUE si se ha completado el proceso sin problemas o FALSE en caso contrario.

Finalidad de la función

Esta función está pensada para firmar el contenido de archivos de texto empleando certificados X509 y la correspondiente clave privada. Por regla general estos mensajes también se habrán cifrado para el destinatario. El archivo generado incluye las cabeceras del mensaje y el texto ya firmado, dispuesto para ser enviado por un cliente de correo electrónico.

El destinatario podrá comprobar la firmad del mensaje con la función openssl_pkcs7_verify y, en caso de que esté cifrado, descifrarlo sirviéndose de la función openssl_pkcs7_decrypt, su certificado y la clave privada asociada.

Véase también

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License