securestore
7 min
el objeto securestore proporciona un mecanismo para almacenar de forma segura datos de clientes dentro del reproductor los datos almacenados en el securestore se cifran utilizando claves raíz que se almacenan de forma segura dentro del hardware del reproductor y son únicas para cada unidad en general, el securestore se utiliza para almacenar una clave de segundo nivel que a su vez se utiliza para el descifrado posterior la clave en sí no se puede recuperar, pero el usuario puede solicitar al securestore que realice el descifrado utilizándola la capacidad del securestore es limitada y los clientes no deben almacenar más de 256 kb de claves idl de securestore interface securestore { promise\<void> writepkcs8decryptionkey(string name, array\<byte> data) promise\<void> writepkcs8mediadecryptionkey(string name, array\<byte> data) promise\<array\<byte>> decryptwithpkcs8key(string name, string algorithm, string hash, array\<byte> data) promise\<void> erasesecurestore(); }; creación de objetos para crear un objeto securestore object, load the @brightsign/securestore module using the node js® require() method var securestoreclass = require("@brightsign/securestore"); var securestore = new securestoreclass(); securestore writepkcs8decryptionkey() promise\<void> writepkcs8decryptionkey(string name, array\<byte> data) escribe la clave en formato pkcs8 en el securestore nombre \<font color="#6554c0">string \</font> el nombre de archivo de la clave dentro del almacén seguro datos \<font color="#6554c0">array \</font> la clave como un arreglo de datos uint8 decryptwithpkcs8key() promise\<array\<byte>> decryptwithpkcs8key(string name, string algorithm, string hash, array\<byte> data) descifra un arreglo de datos utilizando la clave designada almacenada en el securestore y utilizando el algoritmo y hash designados nombre \<font color="#6554c0">string\</font> el nombre de archivo de la clave dentro del almacén seguro algoritmo \<font color="#6554c0">string\</font> por el momento, el único algoritmo compatible es ""rsa oaep" hash \<font color="#6554c0">string\</font> los valores hash pueden ser cualquiera de los siguientes "sha 1", "sha 256", "sha 384" o "sha 512" datos \<font color="#6554c0">array\</font> datos uint8array erasesecurestore() promise\<void> erasesecurestore() elimina completamente el securestore ejemplos ejemplo de escritura window\ crypto subtle generatekey( { name "rsa oaep", moduluslength 2048, //can be 1024, 2048, or 4096 publicexponent new uint8array(\[0x01, 0x00, 0x01]), hash {name "sha 1"}, //can be "sha 1", "sha 256", "sha 384", or "sha 512" }, true, //whether the key is extractable (i e can be used in exportkey) \["encrypt", "decrypt"] //must be \["encrypt", "decrypt"] or \["wrapkey", "unwrapkey"] ) then(function(key){ window\ crypto subtle exportkey("pkcs8", key privatekey) then(function(exportkey) { var secureclass = require("@brightsign/securestore"); var secure = new secureclass(); secure writepkcs8decryptionkey("testkey bin", array from(new uint8array(exportkey))) then(function(){ } }); ejemplo de descifrado var secureclass = require("@brightsign/securestore"); var secure = new secureclass(); decryptwithpkcs8key("testkey bin", "rsa oaep", "sha 1", array from(new uint8array(encrypted))) then(function(decryptedarray){ }) ejemplo de eliminación var secureclass = require("@brightsign/securestore"); var secure = new secureclass(); secure erasesecurestore()