Pular para o conteúdo principal

appcore-security

Pacote publicado

Estável 1.0.0 · MSRV Rust 1.89 · crates.io · docs.rs · código-fonte

Guia e exemplos mantidos pelo crate

O repositório do Runtime mantém o guia detalhado, exemplo básico e exemplo intermediário. O wiki resume a fronteira pública; detalhes de API e execução ficam junto ao código do crate.

Responsabilidade: contratos reutilizáveis de autenticação, token, segredo e policy.

Dependências internas: appcore-core, appcore-dnt.

API principal: provider HashToken, claims, factory/validator de command token, request hash, SecurityError; referências, resolvers, stores, bytes zerados, file keyring, metadata/rotação, contrato Vault, peer credentials, adapter de key provider DNT, traits de autenticação e policy.

Use para autenticação de infraestrutura e indireção de segredo. Tokens são assinados, não criptografados. Não coloque autorização de domínio, OAuth, inbound TLS ou vault gerenciado aqui.

HashTokenProvider::from_secret, with_secret e with_material retornam SecurityResult e aplicam as mesmas invariantes mínimas de secret e salts. compute_request_hash produz um SHA-256 com marcador v2: sobre campos separados por domínio, com tamanho e presença de opcionais explícitos. Hashes anteriores sem versão são rejeitados; emissores e validadores devem ser atualizados juntos.

RequestValidationDetailsRef e RequestPayloadRef oferecem um caminho aditivo emprestado para requests em trânsito. compute_borrowed_request_hash preserva exatamente a saída V2 enquanto conta e hasheia JSON estruturado diretamente em duas passagens, sem reter um payload codificado completo. O contrato owned continua disponível por compatibilidade.

O AppCore 1.0 não possui provider TPM ou hardware-backed. O ADR 0005 registra uma proposta aditiva para 1.1, com fallback explícito e evidência em hardware real; o Runtime atual não alega proteção por hardware.

Maturidade: contratos estáveis; produção depende do backend de segredo e controles do deployment.