openssl_pkcs7_verify

Descripción

Sintaxis de llamada

mixed openssl_pkcs7_verify(string $ArchEntrada, int $Indicadores[, string $ArchSalidaCert[, array $CertAutoridad[, array $OtrosCerts[, string $ArchSalidaMsg]]]])

Parámetros de entrada

  • ArchEntrada: Camino y nombre del archivo que contiene el mensaje S/MIME con la firma a verificar.
  • Indicadores: Este parámetro puede ser una combinación de indicadores (véase la tabla siguiente) que modificarán el algoritmo usado para comprobar la firma.
  • ArchSalidaCert: Camino y nombre de un archivo en el que se escribirá el certificado digital de la persona que ha firmado el mensaje.
  • CertAutoridad: Habitualmente los certificados asociados a las firmas se verifican frente a certificados emitidos por una autoridad. Este argumento será un vector cuyo primer elemento indicará el camino donde se encuentra alojada la información de la entidad certificadora, siendo el segundo el camino y nombre del archivo donde esté el certificado.
  • OtrosCerts: Camino y nombre de un archivo con certificados adicionales que serían utilizados durante la verificación.
  • ArchSalidaMsg: Camino y nombre de un archivo en el que se escribirá el mensaje extraído del archivo S/MIME, una vez eliminadas las cabeceras y firma.
Indicadores que modifican el proceso de cifrado/firmado/verificación
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

  • mixed: Devuelve TRUE si la firma se verifica satisfactoriamente, FALSE si no corresponde la firma con el mensaje o -1 en caso de error.

Finalidad de la función

El objetivo de esta función es facilitar tanto la comprobación de un mensaje firmado, verificando que no ha sido modificado y que el remitente es quien dice ser, como extraer la información del mensaje S/MIME: por una parte el certificado del remitente y por otra el mensaje propiamente dicho.

Por defecto, a menos que se indique lo contrario mediante indicadores (segundo argumento), la función no solamente verificará que el mensaje corresponde a la firma sino que, además, intentará comprobar que esa firma pertenece al remitente. Para ello necesita utilizar datos de una entidad certificadora, certificados adicionales que pudiéramos tener almacenados aunque no correspondan a una entidad de confienza, o bien ambos elementos.

Véase también

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