Sobre o projeto

pkcs11rs é um provedor PKCS #11 baseado em Rust, projetado para unificar o acesso a diversos módulos de segurança de hardware e tokens de software por meio de uma única ABI. Ele suporta aplicativos YubiKey (PIV, OpenPGP, YubiHSM Auth, Issuer Security Domain), autenticadores FIDO2, dispositivos YubiHSM e tokens de software em memória explicitamente configurados. O projeto implementa tabelas de funções PKCS #11 para as versões 2.40, 3.0, 3.1 e 3.2, garantindo que pontos de entrada não suportados retornem erros apropriados em vez de serem omitidos. Recursos principais incluem operações criptográficas com suporte de hardware para RSA, ECDSA, Ed25519 e algoritmos pós-quânticos como ML-DSA e ML-KEM em slots de software. Ele oferece gerenciamento robusto de sessões com bloqueio independente de slots, coordenação compartilhada de dispositivos físicos e reconciliação de hot-plug. O módulo suporta protocolos de transporte seguro como SCP03 e SCP11a/b/c, e inclui um conector de múltiplos dispositivos para acesso remoto a YubiHSM via HTTPS com suporte a TLS mútuo. pkcs11rs também fornece recursos de login protegidos por plataforma usando o Secure Enclave da Apple no macOS e iOS, permitindo que credenciais nomeadas sejam geradas e provisionadas em YubiHSMs. O projeto inclui validação abrangente por meio de testes de CI no Linux, Windows, macOS e iOS, cobrindo compatibilidade de ABI, conformidade de perfil e interações com hardware ao vivo. Ele requer a cadeia de ferramentas Rust na versão 1.94 ou superior e dependências como PC/SC e libudev para construção.