Constants

CERT_FIELD_SERIAL_NUMBER

CERT_FIELD_SERIAL_NUMBER

(int) El número de serie.

CERT_FIELD_VERSION

CERT_FIELD_VERSION

(int) El número de versión-

CERT_FIELD_VALIDITY_DATE_START

CERT_FIELD_VALIDITY_DATE_START

(int) La fecha de inicio de validez, como timestamp de unix.

CERT_FIELD_VALIDITY_DATE_END

CERT_FIELD_VALIDITY_DATE_END

(int) La fecha de fin de validez, como timestamp de unix.

CERT_FIELD_SUBJECT

CERT_FIELD_SUBJECT

(array) La información del sujeto, como un array indexado por los campos que contiene.

Por ejemplo: array('CN' => '{common name}', 'O' => '{organization}', 'C' => '{country}')

CERT_FIELD_ISSUER

CERT_FIELD_ISSUER

(array) La información del emisor, como un array indexado por los campos que contiene.

Por ejemplo: array('CN' => '{common name}', 'O' => '{organization}', 'C' => '{country}')

CERT_REVOCATION_UNDETERMINED

CERT_REVOCATION_UNDETERMINED

CERT_REVOCATION_UNREVOKED

CERT_REVOCATION_UNREVOKED

CERT_REVOCATION_REVOKED

CERT_REVOCATION_REVOKED

Methods

__construct()

__construct(mixed  $user) 

Parameters

mixed $user

usuario al que van a corresponder las operaciones de este objeto; se puede usar cualquier tipo de datos que se pueda convertir a string

getUser()

getUser() : mixed

Returns

mixed —

usuario al que corresponden las operaciones de este objeto

loadPrivateKeyFile()

loadPrivateKeyFile(string  $filename, boolean  $store_in_session = FALSE, string  $passphrase = NULL) 

Carga el contenido de la clave privada a partir de un archivo.

Si el certificado está cargado, se comprueba que se corresponda con la clave.

Parameters

string $filename

nombre del archivo a cargar

boolean $store_in_session

¿la clave se debe almacenar en la sesión?

string $passphrase

la frase usada para encriptar la clave

Throws

\XgapPublicKeyInfrastructureLoadException

si no se puede cargar el archivo

\XgapPublicKeyInfrastructureCheckException

si la clave no tiene un formato reconocido o la frase es incorrecta

\XgapPublicKeyInfrastructureKeyMismatchException

si la clave no coincide con el certificado

loadPrivateKey()

loadPrivateKey(string  $content, boolean  $store_in_session = FALSE, string  $passphrase = NULL) 

Carga el contenido de la clave privada.

Si el certificado está cargado, se comprueba que se corresponda con la clave.

Parameters

string $content

contenido de la clave

boolean $store_in_session

¿la clave se debe almacenar en la sesión?

string $passphrase

la frase usada para encriptar la clave

Throws

\XgapPublicKeyInfrastructureCheckException

si la clave no tiene un formato reconocido o la frase es incorrecta

\XgapPublicKeyInfrastructureKeyMismatchException

si la clave no coincide con el certificado

loadPublicKeyFile()

loadPublicKeyFile(string  $filename, boolean  $store_in_session = FALSE) 

Carga el contenido de la clave pública a partir de un archivo.

Si hubiera un certificado cargado, lo descarga. Para que estén disponibles tanto la clave pública como el certificado, se debe cargar el certificado, no la clave.

Si la clave privada está cargada, se comprueba que se corresponda con la pública.

Parameters

string $filename

nombre del archivo a cargar

boolean $store_in_session

¿la clave se debe almacenar en la sesión?

Throws

\XgapPublicKeyInfrastructureLoadException

si no se puede cargar el archivo

\XgapPublicKeyInfrastructureCheckException

si la clave no tiene un formato reconocido

\XgapPublicKeyInfrastructureKeyMismatchException

si la clave no coincide la privada

\XgapPublicKeyInfrastructureOwnerMismatchException

si el sistema asocia claves públicas con usuarios y {@link getUser()} no coincide con el usuario asociado

loadPublicKey()

loadPublicKey(string  $content, boolean  $store_in_session = FALSE) 

Carga el contenido de la clave pública.

Si hubiera un certificado cargado, lo descarga. Para que estén disponibles tanto la clave pública como el certificado, se debe cargar el certificado, no la clave.

Si la clave privada está cargada, se comprueba que se corresponda con la pública.

Parameters

string $content

contenido de la clave

boolean $store_in_session

¿la clave se debe almacenar en la sesión?

Throws

\XgapPublicKeyInfrastructureCheckException

si la clave no tiene un formato reconocido

\XgapPublicKeyInfrastructureKeyMismatchException

si la clave no coincide la privada

\XgapPublicKeyInfrastructureOwnerMismatchException

si el sistema asocia claves públicas con usuarios y {@link getUser()} no coincide con el usuario asociado

loadCertificateFile()

loadCertificateFile(string  $filename, boolean  $store_in_session = FALSE) 

Carga el contenido de un certificado partir de un archivo.

Simultáneamente carga la clave pública desde el certificado.

Si la clave privada está cargada, se comprueba que se corresponda con el certificado.

Parameters

string $filename

nombre del archivo a cargar

boolean $store_in_session

¿el certificado se debe almacenar en la sesión?

Throws

\XgapPublicKeyInfrastructureLoadException

si no se puede cargar el archivo

\XgapPublicKeyInfrastructureCheckException

si el certificado no tiene un formato reconocido

\XgapPublicKeyInfrastructureKeyMismatchException

si la clave no coincide la privada

\XgapPublicKeyInfrastructureOwnerMismatchException

si el sistema asocia certificados con usuarios y {@link getUser()} no coincide con el usuario asociado

loadCertificate()

loadCertificate(string  $content, boolean  $store_in_session = FALSE) 

Carga el contenido un certificado.

Simultáneamente carga la clave pública desde el certificado.

Si la clave privada está cargada, se comprueba que se corresponda con el certificado.

Parameters

string $content

contenido del certificado

boolean $store_in_session

¿el certificado se debe almacenar en la sesión?

Throws

\XgapPublicKeyInfrastructureCheckException

si el certificado no tiene un formato reconocido

\XgapPublicKeyInfrastructureKeyMismatchException

si el certificado no se corresponde con la clave privada

\XgapPublicKeyInfrastructureOwnerMismatchException

si el sistema asocia certificados con usuarios y {@link getUser()} no coincide con el usuario asociado

\XgapPublicKeyInfrastructureOperationException

si hay algún otro error para realizar la carga

unloadPrivateKey()

unloadPrivateKey() 

Descarga la clave privada de la instancia y de la sesión.

No tiene efecto si la clave no está cargada.

unloadPublicKey()

unloadPublicKey() 

Descarga la clave pública de la instancia y de la sesión.

No tiene efecto si la clave no está cargada.

unloadCertificate()

unloadCertificate(boolean  $keep_public_key = FALSE) 

Descarga el certificado pública de la instancia y de la sesión.

No tiene efecto si la clave no está cargada.

Parameters

boolean $keep_public_key

¿Se debe mantener cargada la clave pública? Si es FALSE, se descarga la clave junto con el certificado

unloadAll()

unloadAll() 

Descarga de la instancia y de la sesión el certificado y las claves pública y privada.

isPrivateKeyAvailable()

isPrivateKeyAvailable() : boolean

Permite comprobar si la clave privada ha sido cargada y es válida.

Returns

boolean

isPublicKeyAvailable()

isPublicKeyAvailable() : boolean

Permite comprobar si la clave pública ha sido cargada y es válida.

Returns

boolean

isCertificateAvailable()

isCertificateAvailable() : boolean

Permite comprobar si el certificado ha sido cargado y es válido.

Returns

boolean

getPrivateKey()

getPrivateKey() : string

Devuelve el contenido de la clave privada.

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si la clave no está disponible

Returns

string

getPublicKey()

getPublicKey() : string

Devuelve el contenido de la clave pública.

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si la clave no está disponible

Returns

string

getCertificate()

getCertificate() : string

Devuelve el contenido del certificado.

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si el certificado no está disponible

Returns

string

getCertificateInfo()

getCertificateInfo(array  $fields = array()) : array

Devuelve información obtenida del certificado.

Ejemplo: $info = $pki->getCertificateInfo(array( iXgapPublicKeyInfrastructure::CERT_FIELD_VERSION, iXgapPublicKeyInfrastructure::CERT_FIELD_SERIAL_NUMBER )); // $info == array( // iXgapPublicKeyInfrastructure::CERT_FIELD_VERSION => 3, // iXgapPublicKeyInfrastructure::CERT_FIELD_SERIAL_NUMBER => 9433777428963602725 // )

Parameters

array $fields

los campos a obtener; debe ser vacío para obtener todos los campos disponibles, o un arreglo que contenga como valores las constantes self::CERTFIELD* para obtener una selección específica

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si el certificado no está disponible

\XgapPublicKeyInfrastructureOperationException

si no se puede obtener la información del certificado

\InvalidArgumentException

si $fields contiene algún nombre de campo desconocido

Returns

array —

la información solicitada en forma de un arreglo que contiene las constantes self::CERTFIELD* como claves; NULL si el certificado no está cargado

getCertificateRevocationStatus()

getCertificateRevocationStatus() : integer

Permite comprobar si el certificado está revocado.

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si el certificado no está disponible

\XgapPublicKeyInfrastructureMissingInfoException

si no se pudo obtener parte de la información necesaria para hacer la comprobación

\XgapPublicKeyInfrastructureOperationException

si hay algún otro problema

Returns

integer —

una de las constantes self::CERTREVOCATION*

getCertificateId()

getCertificateId() : string

Devuelve un string que identifique unívocamente el certificado.

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si el certificado no está disponible

\XgapPublicKeyInfrastructureOperationException

si no se puede obtener la información del certificado

\XgapPublicKeyInfrastructureMissingInfoException

si no se pudo obtener parte de la información necesaria para construir el identificador

Returns

string

getSignatureAlgorithm()

getSignatureAlgorithm() : mixed

Indica el algoritmo que se usa para {@link sign() realizar la firma}.

Returns

mixed

sign()

sign(mixed  $data) : string

Genera una firma de <var>$data</var> usando la clave privada y aplicando el algoritmo SHA1.

El comando OpenSSL equivalente es:

$ openssl dgst -sha1 -sign /path/to/privkey.pem data.txt

Parameters

mixed $data

los datos a firmar; se acepta cualquier tipo de datos que se pueda convertir a string

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si la clave privada no está disponible

\XgapPublicKeyInfrastructureOperationException

si la operación no se pudo realizar correctamente

Returns

string —

la firma en formato binario

verify()

verify(mixed  $data, string  $signature) : boolean

Permite verificar si la firma <var>$signature</var> es válida para los datos <var>$data</var> usando la clave pública. Supone que la firma se realizó usando el algoritmo SHA1.

El comando OpenSSL equivalente es:

$ openssl dgst -sha1 -verify /path/to/pubkey.pem -signature signature.bin data.txt

Parameters

mixed $data

los datos a los que debe corresponder la firma; se acepta cualquier tipo de datos que se pueda convertir a string

string $signature

la firma a comprobar contra los datos

Throws

\XgapPublicKeyInfrastructureKeyUnavailableException

si la clave privada no está disponible

\XgapPublicKeyInfrastructureOperationException

si la operación no se pudo realizar correctamente

Returns

boolean —

TRUE si la firma es válida; FALSE si no