API JavaScript HSM Dinamo
    theme_preparing_search_index

    kind_interface Key

    interface Key {
        create(
            name: string,
            algorithm:
                | ECC_ASYMMETRIC_SWITCHES
                | SYMMETRICAL_KEYS
                | RSA_ASYMMETRIC_KEYS
                | ECX_ASYMMETRIC_SWITCHES
                | HMAC_KEYS
                | ALT_BN128,
            exportable?: boolean,
            temporary?: boolean,
            blockchain?: boolean,
        ): Promise<boolean>;
        delete(name: string): Promise<boolean>;
        block(name: string): Promise<boolean>;
        unblock(name: string): Promise<boolean>;
        import(
            name: string,
            algorithm: SYMMETRICAL_KEYS | RSA_ASYMMETRIC_KEYS | HMAC_KEYS | ALT_BN128,
            data: Buffer,
            exportable?: boolean,
            temporary?: boolean,
            blockchain?: boolean,
        ): Promise<boolean>;
        importCertificate(name: string, certData: Buffer): Promise<boolean>;
        generatePKCS10(
            keyName: string,
            dn: X500DistinguishedName,
            hashAlgorith?: PKCS10_HASH_ALGORITHM,
        ): Promise<Buffer<ArrayBufferLike>>;
        exportAsymmetricPub(
            name: string,
            x509: boolean,
        ): Promise<Buffer<ArrayBufferLike>>;
        exportAsymmetricPriv(name: string): Promise<Buffer<ArrayBufferLike>>;
        exportSymmetric(name: string): Promise<Buffer<ArrayBufferLike>>;
        exportCertClearText(name: string): Promise<Buffer<ArrayBufferLike>>;
        importKekWrap(
            mode: KEK_MODE | UNUSED_MODE,
            pad: KEK_WRAP_PADDING,
            name: string,
            kekKeyName: string,
            objType:
                | ECC_ASYMMETRIC_SWITCHES
                | SYMMETRICAL_KEYS
                | RSA_ASYMMETRIC_KEYS
                | ECX_ASYMMETRIC_SWITCHES,
            data: Buffer,
            iv?: string,
            exportable?: boolean,
            temporary?: boolean,
            blockchain?: boolean,
        ): Promise<boolean>;
        exportKekWrap(
            mode: KEK_MODE | UNUSED_MODE,
            pad: KEK_WRAP_PADDING,
            name: string,
            kekKeyName: string,
            iv?: string,
        ): Promise<Buffer<ArrayBufferLike>>;
        importPKCS8(
            name: string,
            keyType: ECC_ASYMMETRIC_SWITCHES | RSA_ASYMMETRIC_KEYS,
            password: string,
            p8: string,
            exportable?: boolean,
            temporary?: boolean,
            blockchain?: boolean,
        ): Promise<boolean>;
        exportPKCS8(
            name: string,
            password: string,
        ): Promise<Buffer<ArrayBufferLike>>;
        importPKCS12(
            keyName: string,
            certName: string,
            password: string,
            p12: Buffer,
            pubKey?: string,
            exportable?: boolean,
            temporary?: boolean,
        ): Promise<boolean>;
    }
    theme_index

    kind_plural_method

    • Deleta uma chave armazenada no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<boolean>

      Retorna true se a chave foi deletada com sucesso.

      Caso o nome da chave seja inválido.

      Caso ocorra algum erro na deleção da chave.

      Código de exemplo: Excluindo uma chave

    • Bloqueia uma chave no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<boolean>

      Retorna true se a chave foi bloqueada com sucesso.

      Caso o nome da chave seja inválido.

      Caso ocorra algum erro na deleção da chave.

      Código de exemplo: Bloqueando uma chave

    • Desbloqueia uma chave no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<boolean>

      Retorna true se a chave foi desbloqueada com sucesso.

      Caso o nome da chave seja inválido.

      Caso ocorra algum erro na deleção da chave.

      Código de exemplo: Desbloqueando uma chave

    • Importa uma chave criptográfica para dentro do HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      • algorithm: SYMMETRICAL_KEYS | RSA_ASYMMETRIC_KEYS | HMAC_KEYS | ALT_BN128

        Algoritmo da chave. Mesmo algoritmo usado na criação da chave pela função create

      • data: Buffer

        Dados da chave a ser importada.

      • flag_optionalexportable: boolean

        Se a chave será exportável.

      • flag_optionaltemporary: boolean

        Se a chave será temporária.

      • flag_optionalblockchain: boolean

        Se a chave poderá ser usada em operações de blockchain.

      theme_returns Promise<boolean>

      Retorna true se a chave foi importada com sucess

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

      Código de exemplo: Importando uma chave simétrica

    • Importa um certificado para o HSM.

      kind_plural_parameter

      • name: string

        Nome do certificado.

      • certData: Buffer

        Certificado a ser importado.

      theme_returns Promise<boolean>

      Retorna true se o certificado foi importado com sucesso.

      Caso o nome do certificado seja inválido.

      Caso ocorra algum erro na importação do certificado.

      Código de exemplo: Importando um certificado

    • Gera um CSR (Certificate Signing Request / Requisição de Assinatura de Certificado).
      É uma função especializada da API de geração de CSR PKCS#10 do HSM.

      kind_plural_parameter

      • keyName: string

        Nome da chave.

      • dn: X500DistinguishedName

        Dados do certificado.

      • flag_optionalhashAlgorith: PKCS10_HASH_ALGORITHM

        Algoritmo de hash a ser usado na geração do CSR. Caso não seja informado, será usado o algoritmo padrão do HSM.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Retorna o CSR no formato DER.

      Caso o nome da chave seja inválido.

      Código de exemplo: Gerando um PKCS#10

    • Exporta uma chave criptográfica armazenada no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      • x509: boolean

        Se a chave será exportada no formato X509.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Buffer contendo os dados da chave conforme o formato enums.KEY_EXPORT_FORMAT.

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

    • Exporta a parte privada chave assimétrica armazenada no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Buffer contendo os dados da chave conforme o formato enums.KEY_EXPORT_FORMAT.

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

    • Exporta em texto claro a chave privada armazenada no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Buffer contendo os dados da chave conforme o formato enums.KEY_EXPORT_FORMAT.

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

      Código de exemplo: Exportando chave simétrica

    • Exporta em texto claro o certificado armazenada no HSM.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Buffer contendo o certificado.

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

    • Importa uma chave encriptada por uma KEK (Key Encryption Key).

      kind_plural_parameter

      • mode: KEK_MODE | UNUSED_MODE

        Modo de operação para a importação da chave.

      • pad: KEK_WRAP_PADDING

        Opção de padding para a operação de KEK.

      • name: string

        Nome da chave.

      • kekKeyName: string

        Nome da Key Encryption Key (KEK) que será usada para descriptografar a chave importada.

      • objType:
            | ECC_ASYMMETRIC_SWITCHES
            | SYMMETRICAL_KEYS
            | RSA_ASYMMETRIC_KEYS
            | ECX_ASYMMETRIC_SWITCHES

        Tipo do objeto.

      • data: Buffer

        Buffer que contém os dados da chave criptografada que será importada.

      • flag_optionaliv: string

        Vetor de inicialização (Initialization Vector). Obriatório para o modo enums.KEK_MODE.MODE_CBC.

      • flag_optionalexportable: boolean

        Se a chave será exportável.

      • flag_optionaltemporary: boolean

        Se a chave será temporária.

      • flag_optionalblockchain: boolean

        Se a chave poderá ser usada em operações de blockchain.

      theme_returns Promise<boolean>

      Retorna true se a chave foi importada.

      Caso o nome da chave seja inválido.

      Caso ocorra algum erro na importação da chave.

      Código de exemplo: Importando chave KEKed

    • Exporta uma chave encriptada por uma KEK (Key Encryption Key).

      kind_plural_parameter

      • mode: KEK_MODE | UNUSED_MODE

        Modo de operação para a importação da chave.

      • pad: KEK_WRAP_PADDING

        Opção de padding para a operação de KEK.

      • name: string

        Nome da chave.

      • kekKeyName: string

        Nome da Key Encryption Key (KEK) que será usada para descriptografar a chave importada.

      • flag_optionaliv: string

        Vetor de inicialização (Initialization Vector). Obriatório para o modo enums.KEK_MODE.MODE_CBC.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Buffer contendo os dados da chave conforme o formato enums.KEY_EXPORT_FORMAT.

      Caso o nome da chave seja inválido.o.

      Caso ocorra algum erro na importação da chave.

      Código de exemplo: Exportando chave KEKed

    • Exporta uma chave PKCS#8 do HSM.

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Retorna um buffer contendo os dados da chave.

      Caso o nome da chave seja inválido.

      Caso a senha da chave seja não obedeçam aos requisitos mínimos.

      Caso ocorra algum erro na importação da chave.

    • Importa uma chave privada e seu certificado correspondente no formato PKCS#12 para o HSM.

      O PKCS#12 (Public-Key Cryptography Standards #12) é um formato de arquivo padrão para armazenar chaves privadas, certificados e outros segredos criptográficos. Ele permite que múltiplos objetos sejam armazenados em um único arquivo e protegidos por uma senha.

      kind_plural_parameter

      • keyName: string

        O nome da chave a ser criada no HSM. Este nome deve ser único e seguir as regras de nomenclatura do HSM.

      • certName: string

        O nome do certificado a ser criado no HSM. Este nome deve ser único e seguir as regras de nomenclatura do HSM.

      • password: string

        A senha que protege o arquivo PKCS#12. O comprimento da senha deve estar entre P8_IMPORT_EXPORT_SECRET_MIN_LEN e P8_IMPORT_EXPORT_SECRET_MAX_LEN.

      • p12: Buffer

        O conteúdo do arquivo PKCS#12 no formato de um Buffer. Este buffer deve conter os dados binários do arquivo PKCS#12.

      • flag_optionalpubKey: string

        Chave pública do certificado no formato hexadecimal.

      • flag_optionalexportable: boolean

        Se a chave será exportável.

      • flag_optionaltemporary: boolean

        Se a chave será temporária.

      theme_returns Promise<boolean>

      Uma promessa que resolve para true se a importação for bem-sucedida.

      Se o nome da chave ou do certificado for inválido.

      Se a senha for inválida (nula, vazia ou com comprimento fora dos limites).

      Se ocorrer um erro durante a importação, como um erro de comunicação com o HSM ou uma senha incorreta.

      Código de exemplo: Importando um PKCS#12