Transport de timestamps na ABI nativa de Linux
Trabalhos nativos de assinatura em Linux suportam transport real de timestamps RFC 3161 através de um registo de operações estendido; a versão original da ABI, o prefixo de operações, a função exportada e o tamanho ordinário do registo de operações permanecem inalterados
typedef hpdf_status (HPDF_CDECL *hpdf_timestamp_transport_v1)(
void *user_data, const void *request, size_t request_length,
const hpdf_io_v1 *response_io);
typedef struct hpdf_signing_operation_v1 {
hpdf_operation_v1 operation;
void *timestamp_user_data;
hpdf_timestamp_transport_v1 timestamp_transport;
} hpdf_signing_operation_v1;
Registo e configuração JSON
Inicialize os campos originais da operação e defina operation.struct_size como sizeof(hpdf_signing_operation_v1); passe &record.operation a hpdf_document_execute_json_v1 com um trabalho de assinatura schemaVersion 1 e timestamp: true
A extensão tem 72 bytes em Linux nativo x86-64; o hpdf_operation_v1 original permanece com 56 bytes e hpdf_abi_operation_v1_size continua a reportar esse tamanho original
timestampTrustedCAFile fornece as raízes de confiança do TSA; timestampTrustedCRLFile e requireTimestampRevocation opcionais ativam a verificação explícita de revogação
O callback recebe o pedido real DER de timestamps, incluindo o imprint da assinatura e o nonce gerado; devolva bytes DER reais de respostas através do callback de escrita fornecido e devolva um status de ABI
Propriedade e cancelamento
O transport corre sincronamente na thread chamadora; bytes do pedido, tabela de callbacks de respostas e dados de utilizador de respostas são emprestados apenas até o transport devolver
Consulte response_io->is_cancelled durante o trabalho de transport, honre falhas de escrita de respostas e imponha prazos de rede ou de subprocessos no callback da aplicação
maxTimestampResponseBytes tem por defeito o menor entre 4194304 bytes e um oitavo do orçamento de trabalho da operação; um limite configurado tem de ser positivo e não pode exceder essa fração do orçamento de trabalho
A biblioteca retém uma escrita de respostas falhada ou cancelada mesmo que o callback da aplicação devolva depois sucesso; falhas de timestamps preservam o contexto carregado não assinado e não publicam saída assinada nenhuma
Validação e resultados
A implementação nativa verifica o status da resposta, o imprint da assinatura, o nonce, o propósito dos certificados TSA, a cadeia de certificados e a política pedida de revogação antes de acrescentar o atributo signatureTimeStampToken e publicar a assinatura
Os resultados de assinatura incluem timestampCount, timestampValid e timestampTrustEvaluated; signatures.verify aceita requireTimestamp e as mesmas opções explícitas de confiança/revogação TSA
Aceitação
Ambos os compiladores nativos de Linux passam 319 asserções reais de ctypes, 39 asserções reais de clientes C de timestamps, 33 asserções existentes da ABI C e 296 verificações independentes de saídas
A verificação independente OpenSSL autentica as assinaturas CMS e os tokens de timestamps incorporados, rejeita imprints de assinaturas alterados e certificados TSA revogados, e verifica documentos com timestamps em texto simples e AES-256 R5/R6
Trabalhos nativos de assinatura · ABI C nativa · Transport Pascal de timestamps