Filtros de certificados
É possível filtrar os certificados exibidos na seleção de certificados da sua página passando um filtro para a função listCertificates().
Filtrar certificados pode gerar chamados de suporte indesejados. Os usuários podem esperar ver certos certificados que estão sendo filtrados e supor, equivocadamente, que eles não aparecem por causa de um bug e, por isso, procurar o suporte. Isso vale especialmente quando se aplica um filtro baseado na data de expiração, já que um certificado pode aparecer em um dia e "sumir" no dia seguinte. Por isso, RECOMENDAMOS FORTEMENTE que você NÃO USE ESTA FUNCIONALIDADE. Em vez disso, exiba todos os certificados e valide o certificado escolhido.
Se, por algum motivo, você ainda quiser usar esta funcionalidade apesar do aviso acima, continue lendo.
Para exibir apenas certificados dentro do prazo de validade:
pki.listCertificates({
filter: pki.isWithinValidity
}).success(...);
Para exibir apenas certificados que tenham um CPF:
pki.listCertificates({
filter: pki.hasPkiBrazilCpf
}).success(...);
Isso equivale, de forma aproximada, a "exibir apenas certificados ICP-Brasil", já que todo certificado ICP-Brasil tem um CPF (mesmo os certificados de empresa).
Observe que o fato de um certificado ter um CPF não significa, de fato, que ele seja confiável como um certificado válido emitido no âmbito da infraestrutura de chaves públicas ICP-Brasil, já que há uma série de validações que precisam ser feitas (veja Login com certificado digital para mais detalhes).
Para exibir apenas certificados que tenham um determinado CPF:
pki.listCertificates({
filter: pki.pkiBrazilCpfEquals('11111111111')
}).success(...);
Você também pode combinar filtros, exigindo que os certificados atendam a todos os critérios informados:
pki.listCertificates({
filter: pki.filters.all(pki.isWithinValidity, pki.hasPkiBrazilCpf)
}).success(...);
Ou a qualquer um dos critérios informados:
pki.listCertificates({
filter: pki.filters.any(pki.hasPkiBrazilCpf, pki.hasPkiItalyCodiceFiscale)
}).success(...);
Você também pode escrever o seu próprio filtro:
pki.listCertificates({
filter: function (cert) {
var now = new Date();
return (cert.validityStart <= now && now <= cert.validityEnd);
}
}).success(...);
Como dito acima, recomendamos fortemente que você não use esta funcionalidade, para evitar gerar chamados de suporte desnecessários. Em vez disso, recomendamos exibir todos os certificados e validar o certificado escolhido.