---
title: roKeyStore
slug: develop/es/rokeystore
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

Este objeto le permite registrar certificados de cliente con el reproductor. Estos certificados pueden ser utilizados por los objetos *roHtmlWidget* y *roUrlTransfer* al comunicarse con servidores y por los objetos *roVideoPlayer* al acceder a transmisiones. Todas las instancias de objetos comparten la misma base de datos de certificados. El equivalente en JavaScript es [keystore](docId\:fpbEmg6CoY4f0WvPs6iqn).

Mientras que los paquetes CA (agregados mediante el método `AddCAPackage()`) son persistentes, los certificados individuales agregados mediante los métodos `AddCACertificate()` y `AddClientCertificate()` deben aplicarse en cada arranque.

## ifKeyStore

### GetFailureReason() As String

Devuelve información útil adicional si un método de *ifKeyStore* devuelve False.

### AddCACertificate(certificate\_file As String) As Boolean

Registra el certificado CA especificado en la base de datos de certificados. Los certificados de cliente pueden estar autofirmados o firmados mediante un emisor de certificados de terceros (Versign, DigiCert, etc.). 

### AddCAPackage(filename As String) As Boolean

Agrega el archivo de paquete CA especificado a la base de datos de certificados. El nombre del paquete reside en el archivo y no necesita ser el mismo que el nombre del archivo.

Necesitará trabajar con BrightSign para crear un paquete CA que pueda agregar a los reproductores BrightSign; consulte la sección [Generar un paquete CA](docId\:lbUXtFjN_Z4R_AngLdPhU) a continuación para obtener más detalles.

:::hint{type="info"}
Intentar modificar un archivo de paquete CA que se haya agregado a la base de datos lo invalidará. Si un paquete se invalida, deberá eliminarse de la base de datos (mediante el método `RemoveCAPackage()`) y agregarse nuevamente.
:::

### RemoveCAPackage(package\_name As String) As Boolean

Elimina el paquete CA especificado de la base de datos de certificados. Utilice el método `GetCAPackagesInstalled()` para recuperar una lista de nombres de paquetes en la base de datos.

### GetCAPackagesInstalled() As roArray

Devuelve una lista de nombres de paquetes CA contenidos en la base de datos de certificados.

### AddClientCertificate(parameters As roAssociativeArray) As Boolean

Registra un certificado de cliente .p12 en la base de datos de certificados. Este método acepta un arreglo asociativo con los siguientes parámetros:

- `certificate_file`: El nombre y la ruta del archivo del certificado de cliente .p12
- `frase de contraseña`: Una frase de contraseña para el certificado de cliente .p12
- `obfuscated_passphrase`: Una frase de contraseña ofuscada para el certificado de cliente .p12

:::hint{type="danger"}
Proporcione la frase de contraseña utilizando el parámetro "passphrase" o "obfuscated\_passphrase" (no ambos). Recomendamos utilizar "obfuscated\_passphrase" en entornos de producción, mientras que "passphrase" debe utilizarse solo para fines de prueba. Comuníquese con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
:::

Los reproductores BrightSign utilizan el "nickname" de un certificado de cliente .p12 para hacerlo coincidir con un sitio web. El "nickname" consiste en el `host:port` de la dirección web que desea hacer coincidir: Por ejemplo, para utilizar un certificado de cliente para [https://brightsign.biz](https://brightsign.biz) , especificaría un "nickname" de `"brightsign.biz:443"`.

El siguiente ejemplo utiliza un terminal openssl para generar un certificado de cliente .p12 para usar con [https://brightsign.biz](https://brightsign.biz) .

```text
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 -name "brightsign.biz:443"
```

## ifUserData

### SetUserData(user\_data As Object)

Establece los datos de usuario que se devolverán cuando se generen eventos.

### GetUserData() As Object

Devuelve los datos de usuario que se establecieron previamente mediante `SetUserData()`. Devolverá `Inválido` si no se han establecido datos.

## ifMessagePort

### SetPort(port As roMessagePort)

Publica mensajes en el puerto de mensajes adjunto.

## Generar un paquete CA 

Contacte con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener ayuda para generar un paquete de CA. Deberá proporcionar a BrightSign un archivo PEM que contenga una o más CA raíz en las que desea que el reproductor confíe.

BrightSign aplicará hash al archivo CA mediante SHA-256 y lo empaquetará con un certificado X.509 que contiene el hash. El paquete será firmado por una CA en la que BrightSignOS confía únicamente para el empaquetado de CA.

BrightSign empaqueta el certificado X.509 con dos cadenas:

- "nombre descriptivo": Especifica el nombre del paquete, que será devuelto por el método `GetCAPackagesInstalled()` (y puede ser diferente del nombre de archivo del paquete CA). Debe especificar el nombre descriptivo cuando proporcione el archivo CA.
- "acción": Actualmente, la única acción compatible es "add", que agrega el contenido del paquete CA a las CA predeterminadas de BrightSign.

BrightSign le enviará el paquete CA como un archivo *.bsca* que luego se puede agregar a los reproductores BrightSign mediante el método `AddCAPackage()` . También puede inspeccionar el contenido del paquete para determinar si es correcto. 

## Ejemplo

```text
k=createobject("rokeystore")
k.addcacertificate("ssd:/apache.crt")
aa = CreateObject("roAssociativeArray")
aa.AddReplace("certificate_file", "ssd:/client.p12")
aa.AddReplace("passphrase", "1q2w3e4r")
k.addclientcertificate(aa)


if k.AddCaPackage("ssd:/example.bsca") then print "CA Package added"
pkglist = k.GetCAPackagesInstalled()
print pkglist
if k.RemoveCAPackage("Example") then print "Removed CA Package" 
```

