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>;
    exportAsymmetricPub(name: string, x509: boolean): Promise<Buffer>;
    exportAsymmetricPriv(name: string): Promise<Buffer>;
    exportSymmetric(name: string): Promise<Buffer>;
    exportCertClearText(name: string): Promise<Buffer>;
    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>;
    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>;
}

Methods

  • Deleta uma chave armazenada no HSM.

    Parameters

    • name: string

      Nome da chave.

    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.

    Parameters

    • name: string

      Nome da chave.

    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.

    Parameters

    • name: string

      Nome da chave.

    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.

    Parameters

    • 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.

    • Optionalexportable: boolean

      Se a chave será exportável.

    • Optionaltemporary: boolean

      Se a chave será temporária.

    • Optionalblockchain: boolean

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

    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.

    Parameters

    • name: string

      Nome do certificado.

    • certData: Buffer

      Certificado a ser importado.

    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.

    Parameters

    • keyName: string

      Nome da chave.

    • dn: X500DistinguishedName

      Dados do certificado.

    • 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.

    Returns Promise<Buffer>

    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.

    Parameters

    • name: string

      Nome da chave.

    • x509: boolean

      Se a chave será exportada no formato X509.

    Returns Promise<Buffer>

    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 pública assimétrica

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

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<Buffer>

    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 privada assimétrica

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

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<Buffer>

    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.

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<Buffer>

    Buffer contendo o certificado.

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

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

    Código de exemplo: Exportando certificado em texto claro

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

    Parameters

    • 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.

    • Optionaliv: string

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

    • Optionalexportable: boolean

      Se a chave será exportável.

    • Optionaltemporary: boolean

      Se a chave será temporária.

    • Optionalblockchain: boolean

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

    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).

    Parameters

    • 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.

    • Optionaliv: string

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

    Returns Promise<Buffer>

    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.

    Parameters

    Returns Promise<Buffer>

    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.