interface Management {
    getShadow(pin: string): Promise<GetShadowResponse>;
    setNsAuthState(aclMask: ACL_MASK, state: NSAUTH_STATE, share: string[]): Promise<boolean>;
    generateSVMK(m: number, n: number, secret: null | string, version?: SVMK_VERSION): Promise<genSVMKResponse>;
    recoverSVMK(parts: string[]): Promise<string>;
    getScInfo(): Promise<ScInfo | ErrorResponseNH>;
    getScLabel(pin: string): Promise<ErrorResponseNH | ScLabel>;
    setScLabel(pin: string, label: string): Promise<ErrorResponseNH | SucessResponseNH>;
    changeScPin(oldPin: string, newPin: string): Promise<ErrorResponseNH | SucessResponseNH>;
    writeScSVMK(pin: string, shadow: string, overwrite: boolean): Promise<ErrorResponseNH | SucessResponseNH>;
    eraseSmartCard(pin: string): Promise<ErrorResponseNH | SucessResponseNH>;
}

Methods

  • Lê a shadow de um cartão Smart-card M de N Dinamo.

    Parameters

    • pin: string

      PIN do cartão. Deve ser uma string numérica ASCII com tamanho máximo de 8.

    Returns Promise<GetShadowResponse>

    • Dados da shadow lida.

    exceptions.HsmError Caso ocorra algum erro na operação.

    OBS: Para realizar esta operação, é necessário instalar o HSM Client na opção Completa no dispositivo. Você pode fazer o download do HSM Client através do link. Além disso, é necessário utilizar uma leitora de smartcards homologada para a leitura dos cartões.

    Código de exemplo: Recuperando a shadow de um smartcard

  • Gera um Segredo e o divide em partes usando o esquema de compartilhamento secreto de Shamir.

    Parameters

    • m: number

      Número mínimo de partes necessárias para reconstruir o segredo. Deve ser maior ou igual a 2 e menor ou igual a n.

    • n: number

      Número total de partes geradas. Deve ser maior ou igual a m e menor ou igual a 255.

    • secret: null | string

      Segredo a ser dividido. Se nulo ou não fornecido, um segredo aleatório será gerado. Se fornecido, deve ser uma string ASCII com tamanho fixo dependendo da versão do SVMK.

    • Optionalversion: SVMK_VERSION

      Versão do SVMK que determina o tamanho do segredo. (Opcional. Valor padrão é 2)

    Returns Promise<genSVMKResponse>

    • Um objeto contendo o segredo original (se fornecido ou gerado), a entropia usada (se o segredo foi gerado), os parâmetros m e n, e as partes geradas pelo esquema de Shamir.

    exceptions.HsmError Se ocorrer um erro durante a operação, como parâmetros inválidos ou erro de comunicação com o HSM.

    O esquema de Shamir permite dividir um segredo em n partes, de forma que pelo menos m partes sejam necessárias para reconstruir o segredo original. Nenhuma combinação de m-1 partes revela qualquer informação sobre o segredo.

    A versão do SVMK define o tamanho do segredo e o formato das partes. A versão 2 introduz melhorias de segurança em relação à versão 1.

    Se secret for nulo, um novo segredo aleatório com o tamanho apropriado (determinado pela versão) será gerado. A entropia usada para gerar o segredo será incluída na resposta.

    Se secret for fornecido, ele será usado como o segredo a ser dividido. Certifique-se de que o segredo tenha o tamanho correto para a versão especificada.

    Código de exemplo: Gerando uma Server Master Key e Dividindo em partes com Shamir

  • Recupera o SVMK (SVMK - Server Master Key) a partir de um conjunto de partes geradas pelo esquema de compartilhamento secreto de Shamir.

    Parameters

    • parts: string[]

      Array de strings hexadecimais representando as partes do SVMK. Deve conter pelo menos m partes válidas, onde m é o número mínimo de partes definido durante a geração do SVMK.

    Returns Promise<string>

    • O segredo original reconstruído, como uma string hexadecimal.

    exceptions.HsmError Se ocorrer um erro durante a operação, como partes inválidas, número insuficiente de partes ou erro de comunicação com o HSM.

    Este método recupera o SVMK original a partir das partes fornecidas. As partes devem ter sido geradas previamente pelo método generateSVMK. O número de partes fornecidas deve ser igual ou superior ao valor de m definido na geração. A ordem das partes não importa.

    Se as partes fornecidas forem inválidas (formato incorreto, tamanhos diferentes, etc.) ou se o número de partes for insuficiente, um erro será lançado.

    Código de exemplo: Recuperando uma Server Master Key dividida em partes com Shamir

  • Obtém informações sobre o smart card.

    Este método se obtem informações detalhadas sobre o smart card inserido na leitora.

    Returns Promise<ScInfo | ErrorResponseNH>

    Uma Promise que resolve com um objeto ScInfo contendo as informações do smart card em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro durante a comunicação com o Native Host, como:

    • Executável do Native Host não encontrado.
    • Erro ao iniciar o processo do Native Host.
    • Erro ao analisar a resposta JSON do Native Host.
    • Timeout na operação.
    • Native Host encerrado com código de erro.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente.

    As informações do smart card são retornadas em um objeto ScInfo, que contém detalhes como ATR, CSN, versão do chip, etc. Em caso de erro, um objeto ErrorResponseNH é retornado, contendo o status e o código de erro.

    Código de exemplo: Recuperando informações de um smartcard

  • Obtém o label do smart card.

    Parameters

    • pin: string

      O PIN do smart card.

    Returns Promise<ErrorResponseNH | ScLabel>

    Uma Promise que resolve com um objeto ScLabel contendo o label do smart card em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente. O label do smart card é retornado em um objeto ScLabel. Em caso de erro, um objeto ErrorResponseNH é retornado, contendo o status e o código de erro.

    Código de exemplo: Recuperando o label de um smartcard

  • Define o label do smart card.

    Parameters

    • pin: string

      O PIN do smart card.

    • label: string

      O novo label a ser definido.

    Returns Promise<ErrorResponseNH | SucessResponseNH>

    Uma Promise que resolve com um objeto SucessResponseNH em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente. O label do smart card será atualizado com o valor fornecido. Em caso de erro, um objeto ErrorResponseNH é retornado, contendo o status e o código de erro.

  • Altera o PIN do smart card.

    Parameters

    • oldPin: string

      O PIN atual do smart card.

    • newPin: string

      O novo PIN a ser definido.

    Returns Promise<ErrorResponseNH | SucessResponseNH>

    Uma Promise que resolve com um objeto SucessResponseNH em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente. O PIN do smart card será atualizado com o novo valor fornecido. Em caso de erro, um objeto ErrorResponseNH é retornado, contendo o status e o código de erro.

  • Grava o SVMK (Server Master Key) no smart card.

    Parameters

    • pin: string

      O PIN do smart card. Deve ser uma string numérica com exatamente 8 dígitos.

    • shadow: string

      O shadow a ser gravado, em formato hexadecimal. Deve ter o tamanho correto de acordo com a versão do SVMK.

    • overwrite: boolean

      Indica se deve sobrescrever um shadow existente. Se false e já existir um shadow, a operação falhará.

    Returns Promise<ErrorResponseNH | SucessResponseNH>

    Uma Promise que resolve com um objeto SucessResponseNH em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro, como:

    • PIN inválido.
    • Shadow inválido (formato incorreto, tamanho incorreto).
    • Tentativa de sobrescrever um shadow existente quando overwrite é false.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente. O shadow fornecido será gravado no smart card, permitindo que ele seja usado para autenticação e outras operações. Certifique-se de que o shadow seja válido e tenha o tamanho correto de acordo com a versão do SVMK.

  • Apaga o conteúdo de um smart card.

    Parameters

    • pin: string

      O PIN do smart card. Deve ser uma string numérica com exatamente 8 dígitos.

    Returns Promise<ErrorResponseNH | SucessResponseNH>

    Uma Promise que resolve com um objeto SucessResponseNH em caso de sucesso, ou rejeita com um objeto ErrorResponseNH em caso de erro.

    Se ocorrer um erro, como:

    • PIN inválido.
    • Erro de comunicação com o HSM.
    • Smart card não encontrado ou não acessível.

    Este método requer que o cliente HSM esteja instalado e configurado corretamente. Atenção: Esta operação é irreversível e apagará todos os dados do smart card. Certifique-se de que deseja apagar o smart card antes de chamar este método.