toText method

String toText()

Implementation

String toText() {
  final buffer = StringBuffer();
  buffer.writeln('Relatório de Conformidade');
  buffer.writeln('Nome: ${metadata.name}');
  buffer.writeln('');
  buffer.writeln(
    'Data de validação: ${_formatDateTimeBrt(metadata.validationDate)}',
  );
  buffer.writeln('');
  buffer.writeln(
    'Versão do software(Verificador de Conformidade): ${metadata.verifierVersion}',
  );
  buffer.writeln('');
  buffer.writeln(
    'Versão do software(Validador de Documentos): ${metadata.validatorVersion}',
  );
  buffer.writeln('');
  buffer.writeln('Fonte de verificação: ${metadata.verificationSource}');
  buffer.writeln('');
  buffer.writeln('');
  buffer.writeln('Informações do arquivo');
  buffer.writeln('Nome do arquivo: $fileName');
  buffer.writeln('');
  buffer.writeln('Resumo da SHA256 do arquivo: $fileHashSha256');
  buffer.writeln('');
  buffer.writeln('Tipo do arquivo: $fileType');
  buffer.writeln('');
  buffer.writeln('Quantidade de assinaturas: $signatureCount');
  buffer.writeln('');
  buffer.writeln(
      'Quantidade de assinaturas ancoradas: $anchoredSignatureCount');
  buffer.writeln('');
  buffer.writeln('');
  buffer.writeln('Informações da Política de Assinatura');

  final pa = policyInfo;
  buffer.writeln('PA válida: ${_formatBool(pa?.paValid)}');
  buffer.writeln('');
  buffer.writeln(
    'Período de validade da PA: ${_formatPeriod(pa?.paValidFrom, pa?.paValidTo)}',
  );
  buffer.writeln('');
  buffer.writeln('PA expirada: ${_formatBool(pa?.paExpired)}');
  buffer.writeln('');
  buffer.writeln('PA válida na LPA: ${_formatBool(pa?.paValidInLpa)}');
  buffer.writeln('');
  buffer.writeln('PA online: ${_formatBool(pa?.paOnline)}');
  buffer.writeln('');
  buffer.writeln('OID da PA: ${pa?.paOidLabel ?? 'Não informado'}');
  buffer.writeln('');
  buffer.writeln('');
  buffer.writeln('Informações da Lista de Políticas de Assinatura');

  final lpa = lpaInfo;
  buffer.writeln('LPA válida: ${_formatBool(lpa?.lpaValid)}');
  buffer.writeln('');
  buffer.writeln(
    'Próxima emissão da LPA: ${_formatDateTimeBrt(lpa?.nextIssue)}',
  );
  buffer.writeln('');
  buffer.writeln('LPA expirada: ${_formatBool(lpa?.lpaExpired)}');
  buffer.writeln('');
  buffer.writeln('Nome da LPA: ${lpa?.lpaName ?? 'Não informado'}');
  buffer.writeln('');
  buffer.writeln('LPA online: ${_formatBool(lpa?.lpaOnline)}');
  buffer.writeln('');
  buffer.writeln('Versão da LPA: ${lpa?.lpaVersion ?? 'Não informado'}');
  buffer.writeln('');

  for (final sig in signatures) {
    buffer.writeln('');
    buffer.writeln(sig.title);
    buffer.writeln('');
    buffer.writeln('Informações da assinatura');
    buffer.writeln('Assinante: ${sig.signerName}');
    buffer.writeln('');
    buffer.writeln('CPF: ${sig.cpfMasked}');
    buffer.writeln('');
    buffer.writeln('Tipo de assinatura: ${sig.signatureType}');
    buffer.writeln('');
    buffer.writeln('Status de assinatura: ${sig.signatureStatus}');
    buffer.writeln('');
    buffer.writeln('Caminho de certificação: ${sig.certPathStatus}');
    buffer.writeln('');
    buffer.writeln('Estrutura: ${sig.structureStatus}');
    buffer.writeln('');
    buffer.writeln('Cifra assimétrica: ${sig.asymmetricCipherStatus}');
    buffer.writeln('');
    buffer.writeln('Resumo criptográfico: ${sig.digestOk}');
    buffer.writeln('');
    buffer.writeln('Data assinatura: ${sig.signingTime}');
    buffer.writeln('');
    buffer.writeln('Política de assinatura: ${sig.signaturePolicy}');
    buffer.writeln('');
    buffer.writeln('Atributos obrigatórios: ${sig.requiredAttrsStatus}');
    buffer.writeln('');
    buffer.writeln('Verificação incremental: ${sig.incrementalCheck}');
    buffer.writeln('');
    buffer.writeln('Mensagem de erro: ${sig.message}');
    buffer.writeln('');
    buffer.writeln('');
    buffer.writeln('Certificados utilizados');
    buffer.writeln('');

    for (final cert in sig.certificates) {
      buffer.writeln(cert.subject);
      buffer.writeln('Buscado: ${cert.fetchSource}');
      buffer.writeln('');
      buffer.writeln('Assinatura: ${cert.isSignature}');
      buffer.writeln('');
      buffer.writeln('Emissor: ${cert.issuer}');
      buffer.writeln('');
      buffer.writeln('Data de emissão: ${cert.notBefore}');
      buffer.writeln('');
      buffer.writeln('Aprovado até: ${cert.notAfter}');
      buffer.writeln('');
      buffer.writeln('Expirado (LCR): ${cert.revoked}');
      buffer.writeln('');
      buffer.writeln('');
    }

    buffer.writeln('Atributos usados');
    buffer.writeln('ATRIBUTOS OBRIGATÓRIOS:');
    buffer.writeln('');
    for (final attr in sig.requiredAttributes) {
      buffer.writeln('Nome do atributo:${attr.name}');
      buffer.writeln('');
      buffer.writeln('Corretude: ${attr.status}');
      buffer.writeln('');
      buffer.writeln('');
    }

    if (sig.optionalAttributes.isEmpty) {
      buffer.writeln('ATRIBUTOS OPCIONAIS:Não possui.');
    } else {
      buffer.writeln('ATRIBUTOS OPCIONAIS:');
      buffer.writeln('');
      for (final attr in sig.optionalAttributes) {
        buffer.writeln('Nome do atributo:${attr.name}');
        buffer.writeln('');
        buffer.writeln('Corretude: ${attr.status}');
        buffer.writeln('');
        buffer.writeln('');
      }
    }
  }

  return buffer.toString();
}