Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 19:47
· 52 commits to main since this release
v0.3.0
e767c29

Corrigido

  • O token passa a publicar a cadeia de autoridades, e o assinador do
    Projudi (TJPR) deixa de enviar a assinatura sem ela
    (issue #22). O token
    expunha só o certificado final, o SunPKCS11 devolvia uma cadeia de tamanho 1,
    e o assinador do TJPR caía num caminho de completar a cadeia que está
    quebrado do lado dele; o servidor recusava com "Trust anchor for
    certification path not found". Agora o app baixa as ACs do caIssuers do
    próprio certificado (o .p7c da Certisign, que traz a cadeia até a raiz),
    guarda no state.json e o módulo as publica como CKO_CERTIFICATE de
    autoridade, ao lado do certificado do titular, sem parear com a chave. O
    download acontece no preparo e, para instalações que já existiam, na
    primeira vez que o app abre depois da atualização; o módulo continua sem ir
    à rede. Se o download falhar, o token segue como antes e o motivo vai ao
    diag. Com a cadeia no token, o findCertificate do assinador do TJPR
    continua vendo um certificado só e escolhendo sozinho.

  • PIN recusado pelo servidor não volta mais preenchido, e a recusa aparece
    para o titular
    (issue #21). O diálogo guardava o PIN no cache antes de o
    tokensessao aceitá-lo, então um PIN errado voltava preenchido (com o foco
    já no OTP) em cada assinatura dos 5 minutos seguintes, e cada reenvio podia
    contar para o bloqueio do certificado. Agora o PIN só entra no cache depois
    de aceito, e uma recusa limpa o cache. Na recusa de PIN ou OTP, o diálogo
    reabre dentro da mesma assinatura com a mensagem do servidor e o PIN vazio,
    até 3 tentativas; esgotadas, o módulo responde CKR_PIN_INCORRECT em vez de
    CKR_FUNCTION_FAILED, que o PJeOffice mostrava como stack trace. A
    mensagem "PIN ou e-Token incorreto" ganhou dica própria no diag: antes ela
    caía na do "e-token", que afirmava, errado, que o PIN tinha sido aceito.

Segurança

  • rustls 0.23.45, que corrige o RUSTSEC-2026-0285 (#20). A versão anterior
    aceitava mensagens de handshake TLS 1.3 enviadas no nível de criptografia
    errado, quando vinham no mesmo registro de uma mensagem que troca a chave. O
    transcript continua autenticado, então não dá para alterar um handshake por
    aí; o efeito é aceitar em texto claro mensagens que deveriam vir cifradas. O
    rustls entra pelo ureq, no transporte até o servidor RemoteID.