Morfas3 Posted August 10, 2020 at 09:00 PM Report Share #619011 Posted August 10, 2020 at 09:00 PM Boa noite, Estou a integrar com os serviços da AMA, e estou a tentar assinar digitalmente um pdf com base em chave movel digital. Já tentei uma solução que postaram aqui ha uns anos, com base no cartão de cidadão, mas não tive sucesso. Alguém já fez alguma coisa com chave móvel? Link to comment Share on other sites More sharing options...
gatpereira Posted August 14, 2020 at 03:03 PM Report Share #619063 Posted August 14, 2020 at 03:03 PM Boa tarde, Implementei a assinatura digital com chave móvel a uns anos, na altura era necessário cumprir uns certos requisitos para iniciar o desenvolvimento, por exemplo: necessário o registo e activação da chave móvel no ambiente de pré-produção da AMA. Aconselho-te a entrares em contacto com a AMA para saber quais os passos a seguir. Cumps. Link to comment Share on other sites More sharing options...
Morfas3 Posted August 14, 2020 at 03:14 PM Author Report Share #619067 Posted August 14, 2020 at 03:14 PM 8 minutes ago, gatpereira said: Boa tarde, Implementei a assinatura digital com chave móvel a uns anos, na altura era necessário cumprir uns certos requisitos para iniciar o desenvolvimento, por exemplo: necessário o registo e activação da chave móvel no ambiente de pré-produção da AMA. Aconselho-te a entrares em contacto com a AMA para saber quais os passos a seguir. Cumps. Boas, Obrigado pela resposta, eu ja estou a invocar o serviço deles, ja activei a chave movel, já assino e tudo. O problema que me deparo é que o pdf aparece com erros a informar que foi alterado ou corrupto, o que me leva a querer que ou estou a construir mal o hash do documento que é enviado para eles, ou estou a inserir erradamente a assinatura no pdf ou entao eles estão a retornar mal a assinatura. Mas estou mais inclinado para a 1º hipotese. Link to comment Share on other sites More sharing options...
IRlyDunno Posted January 5, 2021 at 03:56 PM Report Share #620874 Posted January 5, 2021 at 03:56 PM Olá @Morfas3 Conseguiste ter algum sucesso neste projeto de assinatura com a CMD? Seria possível partilhares como estas a invocar o serviço, ou onde tem a documentação para tal? Link to comment Share on other sites More sharing options...
Morfas3 Posted January 5, 2021 at 04:09 PM Author Report Share #620875 Posted January 5, 2021 at 04:09 PM 12 minutes ago, IRlyDunno said: Olá @Morfas3 Conseguiste ter algum sucesso neste projeto de assinatura com a CMD? Seria possível partilhares como estas a invocar o serviço, ou onde tem a documentação para tal? Consegui ter sucesso sim, A invocação do serviço da ama não foi propriamente o problema, mas diz me onde tas a ter problema. Eu usei o Itext7 para assinar o documento. Link to comment Share on other sites More sharing options...
reznor Posted February 25, 2021 at 10:27 AM Report Share #621470 Posted February 25, 2021 at 10:27 AM bom dia, estou a tentar implementar uma solução C# onde seja possivel assinar documento com base na chave movél digital (sem recurso ao CC). no SDK disponibilizado não é possivel fazer isto sem um CC no leitor e a propria AMA já comunicou que essa funcionalidade não está dísponivel Pelo que entendi @Morfas3 é que conseguiu alcançar com sucesso esta solução de assinatura de documentos com CMD, é isso? Link to comment Share on other sites More sharing options...
Morfas3 Posted February 25, 2021 at 10:45 AM Author Report Share #621472 Posted February 25, 2021 at 10:45 AM Bom dia @reznor , Primeiro tem de ter o ao serviço soap que ama Disponibiliza, já tem isso? Faça uns testes a invocar isso, eles têm um manual que explicam como invocar os serviços. Isso vai ser um console aplication ou website? 1 1 Report Link to comment Share on other sites More sharing options...
reznor Posted February 25, 2021 at 10:52 AM Report Share #621473 Posted February 25, 2021 at 10:52 AM Bom dia, Não, não tenho esse serviço SOAP... Já tentei contactar a AMA mas sem sucesso. Para já tenho uma console app pronta para testar, mas será uma webapp (website). Link to comment Share on other sites More sharing options...
reznor Posted March 5, 2021 at 03:21 PM Report Share #621581 Posted March 5, 2021 at 03:21 PM @Morfas3 Boa tarde, estou com dificuldades a fazer os pedidos, ja me registei em pre produção e tudo mais mas quando faço um pedido nunca tenho uma resposta do lado da AMA. Já passou por esta dificuldade? Obrigado Link to comment Share on other sites More sharing options...
Morfas3 Posted March 9, 2021 at 01:58 PM Author Report Share #621604 Posted March 9, 2021 at 01:58 PM @reznor qual é o serviço que não consegue invocar? Link to comment Share on other sites More sharing options...
Morfas3 Posted March 9, 2021 at 02:12 PM Author Report Share #621606 Posted March 9, 2021 at 02:12 PM Pois mas sem ter a documentação/wsdl dos serviços e credencias para acesso ao serviço, não consegue fazer nada. O meu contacto com a ama foi a partir de um cliente para onde trabalhei. E sim eles também se queixaram do tempo de resposta. Se calhar o que está a tentar usar é biblioteca que eles disponibilizam para conectar o cartão de cidadão ou estou errado? Link to comment Share on other sites More sharing options...
reznor Posted March 12, 2021 at 09:29 AM Report Share #621656 Posted March 12, 2021 at 09:29 AM (edited) @Morfas3 Bom dia, entretanto o contacto da AMA respondeu e já ultrapassei o problema. "Protocolos" dizem eles! Obrigado Edited March 12, 2021 at 09:29 AM by reznor Link to comment Share on other sites More sharing options...
Morfas3 Posted March 12, 2021 at 09:33 AM Author Report Share #621657 Posted March 12, 2021 at 09:33 AM @reznorQualquer coisa diz, eu usei o itext para incorportar a assinatura no pdf Link to comment Share on other sites More sharing options...
reznor Posted March 12, 2021 at 12:01 PM Report Share #621662 Posted March 12, 2021 at 12:01 PM @Morfas3 Boas, vinha agora mesmo tentar perceber se tinhas chegado a este passo. Recebemos a Singature em byte[], o que usaste em concreto para incorporar no pdf? Estou a tentar com ItextSharp mas estou a ter alguns problemas, podes dar-me uma dica pf? Link to comment Share on other sites More sharing options...
Morfas3 Posted March 12, 2021 at 12:07 PM Author Report Share #621663 Posted March 12, 2021 at 12:07 PM @reznor Hoje estou sem tempo, respondo te no f-d-s Link to comment Share on other sites More sharing options...
reznor Posted March 12, 2021 at 01:37 PM Report Share #621664 Posted March 12, 2021 at 01:37 PM @Morfas3 Sim senhor, muito obrigado! 👍 Link to comment Share on other sites More sharing options...
PedroMFRibeiro Posted March 15, 2021 at 10:45 AM Report Share #621680 Posted March 15, 2021 at 10:45 AM Viva @reznor, Também estou a encontrar alguns problemas com o itext.. Quando fazes SignDetached(IExternalSignature externalSignature, X509Certificate[] chain, ICollection<ICrlClient> crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, CryptoStandard sigtype) o "externalSignature" é a nossa hash assinada, a "chain" são os certificados de conta de assinatura e o "CryptoStandard sigtype" é igual a DigestAlgorithms.SHA256 ? Isto é suficiente? Link to comment Share on other sites More sharing options...
Morfas3 Posted March 15, 2021 at 11:51 AM Author Report Share #621681 Posted March 15, 2021 at 11:51 AM têm de usar o singdeferred using (PdfReader reader = new PdfReader("_nome_ficheiro")) { using (FileStream fileStream = new FileStream($"_nome_ficheiro_assinado_ouput", FileMode.Create)) { Org.BouncyCastle.X509.X509Certificate[] chain = this.getUserCertificateChain(userBasePath); PdfSigner signer = new PdfSigner(reader, fileStream, new StampingProperties()); IExternalSignatureContainer external = new MyExternalcontainer(signature, chain.ToList()); PdfSigner.SignDeferred(signer.GetDocument(), Signature_Field_Name, fileStream, external); fileStream.Close(); fileStream.Dispose(); } reader.Close(); } 1 Report Link to comment Share on other sites More sharing options...
Morfas3 Posted March 15, 2021 at 12:00 PM Author Report Share #621682 Posted March 15, 2021 at 12:00 PM Mas antes de aplicarem a assinatura no documento, no momento de ir buscar o hash do documento têm de "desenhar" uma assinatura em branco no pdf isto para não terem o problema que tive que quando abria o pdf dizia me que a assinatura era inválida. No myexternalContainer é preciso implementar este método public byte[] Sign(Stream inputStream) { PdfPKCS7 sgn = new PdfPKCS7(null, certificado.ToArray, "SHA256", false); sgn.SetExternalDigest(this.SignedHash, null, "RSA"); return sgn.GetEncodedPKCS7(); } vou tentar perceber o que foi feito na assinatura em branco porque isso é um passo anterior de aplicar assinatura Link to comment Share on other sites More sharing options...
reznor Posted March 15, 2021 at 03:09 PM Report Share #621684 Posted March 15, 2021 at 03:09 PM @Morfas3 O getUserCertificateChain obtem a chain de onde? Eu não consigo entender esta questão, é do ficheiro .cer fornecido pela AMA? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now