Opções de identidade/autenticação. Campos ausentes caem para HsmClientConfig como fallback.
OptionaltlsOptions: TlsOptions
Opções de mTLS, se aplicável.
OptionalacquireTimeoutMs: number
Override pontual de HSM_SESSION_POOL_QUEUE_TIMEOUT_MS
para esta chamada específica.
Uma reconexão interna também invalida o handle, exatamente como se uma
chamada de negócio tivesse dado erro — mesmo que a operação em si tenha
sido bem sucedida e devolvido o resultado correto. Hoje isso acontece em
toda operação simétrica cujo payload passa de MAX_FAST_SYM_OP_SEG
(1200 bytes): cryptography.encrypt/decrypt/cipher cai no modo
streaming, que encerra a conexão e faz o HSM interno abrir outra por
baixo — uma conexão que o pool não controla. Devolver a conexão original
(já abandonada) ao pool envenenaria o próximo tomador, então o handle é
encerrado ali mesmo e a sessão descartada. Na prática: trate operações
simétricas grandes num handle pooled como potencialmente de uso único —
a chamada seguinte neste handle rejeita com
exceptions.SessionInvalidatedError; abra um handle novo. Para
cargas simétricas grandes e repetidas, hsm.connect() (conexão
dedicada) continua sendo o caminho adequado.
exceptions.HsmOptionError - Host ausente/inválido, ou nenhum
modo de autenticação resolvido (mesma validação de hsm.connect()).
exceptions.SessionPoolQueueFullError - Fila do pool já no limite.
exceptions.SessionPoolQueueTimeoutError - Esperou na fila além do timeout.
exceptions.SessionPoolShutdownError - O pool desta identidade está em drenagem.
Código de exemplo: Conectando-se ao HSM com pool de sessões
Obtém um handle com uma sessão emprestada do pool da chave de identidade (host, porta, identidade de autenticação, hash de conteúdo do material mTLS quando presente). Pool criado sob demanda, com warm-up eager do mínimo configurado.
O handle tem a mesma forma pública que
Hsm— não é um tipo novo. Representa 1 sessão emprestada pela vida inteira do handle. Sem concorrência interna a um handle; paralelismo vem de abrir vários handles.O handle é invalidado permanentemente no primeiro erro de chamada de negócio: a sessão por trás é descartada imediatamente (nunca devolvida ao pool) e chamadas subsequentes neste handle rejeitam com exceptions.SessionInvalidatedError (nunca tentam obter uma sessão nova silenciosamente).
.disconnect()continua idempotente e seguro de chamar num handle já invalidado.