amagovpt / autenticacao.gov

Middleware Oficial de Identificação Eletrónica em Portugal - Cartão de Cidadão, da Chave Móvel Digital e Sistema de Certificação de atributos profissionais
https://www.autenticacao.gov.pt
European Union Public License 1.2
171 stars 33 forks source link

Limite da API CC para assinatura múltipla de documentos e selo temporal ( Versão 3.2.0 ) #36

Closed WhitecastlePT closed 4 years ago

WhitecastlePT commented 4 years ago

Boa tarde sou programador na empresa AIRC onde temos bastantes integrações com AMA,

Estamos a usar a vossa API do CC em Windows 10 para a assinatura múltipla. Realizámos alguns testes de carga para a assinatura múltipla.

1- Questão: Existe algum limite imposto para o número de documentos a assinar ?

Pergunto porque tentámos assinar com 100 documentos e funcionou ( Sem selo temporal ). Com 500 documentos chega a um certo ponto ( passados os 100 documentos ) que pura e simplesmente deixa de assinar sem erro.

2- Questão: O serviço do selo temporal tem algum limite de chamadas também?

Porque ao activar a assinatura com selo temporal, realizo assinatura de 3 documentos por exemplo, funciona, logo a seguir para os mesmos documentos obtenho um erro de "Erro de carimbo de data e hora durante a assinatura".

Obrigado

ACamposPT commented 4 years ago

Boa tarde, Sobre o tema 1, nós fazemos regularmente uma bateria de testes ao SDK, no entanto, não fazemos nenhum teste de carga que teste assinar 100 ou mais ficheiros. Iremos fazer esse teste assim que for possível, obrigado pela informação.

Quanto ao tema 2, o servidor de selos temporal do Cartão do Cidadão (http://ts.cartaodecidadao.pt/tsa/server) efectivamente tem um limite temporal, no entanto o SDK permite usar outro servidor temporal à escolha do Cidadão. Veja a nossa documentação do SDK sobre o tema: https://amagovpt.github.io/autenticacao.gov/manual_sdk.html#configurar-o-servidor-de-selo-temporal

Agradecemos que nos reportem outros temas resultantes dos vossos testes.

Obrigado.

WhitecastlePT commented 4 years ago

Obrigado pela resposta.

Esta questão de tentar saber um "limite" ( caso haja, ou até ficar imposto um numero fixo ) do numero de assinaturas é importante. Porque no nosso caso temos um software que os autarcas irão usar para fazer assinatura múltipla de documentos. Diariamente, raramente um autarca ultrapassa os 100 ou 200 documentos. Em municípios maiores se calhar a realidade é outra. Assim, caso houvesse um limite, seja a nível da tecnologia usada ( memória ou alguma variável no código que rebente com alguma quantidade ) ou imposto por vocês que cada vez que existe chamada a uma função de assinatura múltipla, salvaguardava-se ( previa-se facilmente ) e os "software's" moldavam-se nesse sentido.

É só uma ideia...

Quanto ao selo temporal de facto ter limite de 20 vezes por cada 20 minutos é um pouco limitativo quando se quer assinar muitos documentos, talvez aqui a questão da quantidade de ficheiros influencie isto.

NOTA: os testes de carga feitos foram sempre com PDF's random com variações de tamanhos. ( 1mb a 25mb ) por ficheiro.

Mais uma vez obrigado pela resposta, e aguardo feedback quanto a estas matérias.

Cumprimentos, Henrique Crachat

miguelblcfigueira commented 4 years ago

Boa tarde @WhitecastlePT ,

Que SDK estão a utilizar? Java, C# ou C++? Com o SDK em Java fui capaz de assinar +1500 ficheiros de 7MB de uma vez sem problema. Não houve qualquer consumo de memória que indicasse memory leak.

Poderia descrever melhor como termina a assinatura na ocorrência do problema? Que erro ocorre?

O problema poderá advir de um PDF não suportado. Se conseguirem identificar algum ficheiro que cause o erro (e for possível, claro), podem partilhar o ficheiro?

Cumprimentos, Miguel Figueira

WhitecastlePT commented 4 years ago

Boa tarde @miguelblcfigueira estamos a usar o SDK C++ . Tenho realizado testes de assinatura múltipla e recentemente detectei que por vezes falha na assinatura em PDF/A mas é algo completamente random, umas vezes dá outras não dá. O erro apresentado é de "Documento PDF inválido".

No entanto relativamente ao assunto que iniciou este issue quando assinava mais de 100/200 documentos a assinatura parava e não era despoletado nenhum erro do SDK.

Poderia ser por causa de algum PDF/A mas não apresentou mensagens de erro, simplesmente chegava a uma altura e parava de assinar.

Neste momento estamos num processo de migração de projectos para outro repositório e o autor da implementação com o SDK está de Férias. Eu apenas consumo na minha aplicação Java, os métodos JNI (Java Native Interface) de um JAR criado pelo mesmo e neste momento as coisas estão um pouco paradas.

Logo que detecte novamente um comportamento estranho num ficheiro em particular posso partilhar.

@ACamposPT já foi possível testar ?

Cumprimentos, Henrique Crachat

ACamposPT commented 4 years ago

Boa tarde, O @miguelblcfigueira é um elemento da equipa de desenvolvimento do projecto e é ele que está a acompanhar esta incidência. Ele já fez os testes que referiu.

No entanto, deixo já aqui algumas questões / curiosidades: 1) Se é uma aplicação Java, existe alguma razão para não usarem o SDK Java? 2) É possível partilhar esse lote de ficheiro (100/200 documentos) que referiu ou outro lote que tenha detectado problemas?

Cumprimentos, Adriano Campos

WhitecastlePT commented 4 years ago

@ACamposPT ok, não tinha percebido que o @miguelblcfigueira fazia parte da equipa dev. Existe, porque a app feita com recurso ao SDK C++ serve outras aplicações que não apenas a minha aplicação em Java, aplicações em PowerBuilder etc...

No entanto existe outra equipa neste momento a usar o JDK em Java mas estão de Férias de momento.

Como disse anteriormente os desenvolvimentos estão um pouco parados e as pessoas estão de Férias agora, mas logo que possível irei reportar/partilhar o(s) ficheiros(s) onde ocorreu o problema.

Cumprimentos, Henrique Crachat

ACamposPT commented 4 years ago

@WhitecastlePT se já conseguir partilhar os ficheiros, ficaríamos agradecidos. Obrigado.

ACamposPT commented 4 years ago

Vamos fechar este ticket. Se tiverem novidades podem reabrir.