Documentation

Jan 14, 2010 at 2:31 AM

Sorry but I've looked everywhere on this thread and couldn't find the documentation for this Wrapper. I know it's only a Wrapper and the only thing that's really important is the API that there is embedded, but I can't find the eIDPT documentation. This would be a lot of help for my project so if you could please include it here I would be glad.

 

PS: If it's already here anywhere you can call me dumb :p E se quiseres podes responder em português também :)

 

Thanks in advance,

Toolzinho

Coordinator
Jan 16, 2010 at 8:35 PM
Edited Jan 16, 2010 at 8:42 PM

Manual Técnico do Cartão de Cidadão
http://www.cartaodecidadao.pt/index.php?option=com_content&task=view&id=115&Itemid=101&lang=pt

Como a API é baseada no Middleware do Cartão, poderá utilizar como referência o link acima referido. O que procura encontra-se no ponto 4 do dito manual, a partir da página 20.

A diferença é o wrapper de .NET estar implementado por classes e as funções referidas no Manual terem de ser invocadas pela classe em questão.

De referênciar que tem também disponível o programa de Demonstração com a totalidade da eIDPT.NET utilizada, o qual ser-lhe-á útil para verificar como utilizar o eIDPT.net:
http://cartaodecidadao.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29089

Qualquer coisa estou ao dispor.

Cumprimentos,
Fernando Nunes

Jan 16, 2010 at 10:43 PM

Obrigado, ja tinha sacado o programa de teste e andava a ver o que fazia o quê. Realmente dou-vos os parabéns, isto assim é bastante melhor. Eu estava a pensar usar uma lib de smart card geral para o meu projecto e ia ser o fim do mundo a ter de requerer todos os aspectos tecnicos do cartao. :)

 

 

Cumprimentos,

Toolzinho

Mar 1, 2010 at 11:55 AM

Por acaso existe alguma aplicação demo em C#? Na secção dos downloads só existe em VB. O meu VS tenta converter-la para a versão 2008 e estoira.

Tentei sacar os dados visiveis do cartão (função GETID()) mas dá me erro. O erro que dá diz-me isto: 

 

 DevScope.CartaoDeCidadao.EIDPTException: PTEID Error Code: 9
Message: E_NOT_INITIALIZED.

 DevScope.CartaoDeCidadao.EIDPTException: PTEID Error Code: 9

Message: E_NOT_INITIALIZED.

 

eu tenho isto:

 

 try

            {

                EIDPT.Init(null);

            }

            catch (EIDPTException err)

            {

                throw err;

            }

 

            Id user = null;

 

            try

            {

                user = EIDPT.GetID();

            }

            catch (EIDPTException err)

            { 

                throw err; 

            }

 

            try

            {

                EIDPT.Exit(0);

            }

            catch (EIDPTException err)

            {

                throw err;

            }

 

agradecia dicas.. :)

 

Portnoy

 

Coordinator
Mar 1, 2010 at 8:00 PM

Caro Frank,

Em downloads tem disponível um exemplo em binário de como utilizar a EIDPT .NET. Caso ainda não tenha efectuado o download o mesmo encontra-se em: http://cartaodecidadao.codeplex.com/releases/view/29089

Esse mesmo exemplo e todas as restantes releases encontram-se disponíveis com código fonte em: http://cartaodecidadao.codeplex.com/SourceControl/changeset/view/37556.

Se após consulta do código fonte indicado ainda continuar com dificuldades, avise.

Cumprimentos,
Fernando Nunes

Mar 8, 2010 at 11:14 AM

Caro Fernando Nunes,

Estou a fazer um website em asp net mvc, e quero autenticar os utilizadores por recurso ao cartão do cidadão. Esta a tentar fazer a parte de busca dos dados manualmente, mas pelos vistos, basta configurar umas "coisinhas" no IIS e depois usar a propriedade Context.Request.ClientCertificate e, por aí, retirar a informação que necessito relativamente ao certificado. Quanto ao resto das informações do cartão do cidadão ainda não sei como fazer, pois é me retornado o OBJECT_NOT_FOUND error. 

Consegui aceder aos dados do cartão do cidadão pelo desenvolvimento de aplicação desktop, no caso de uma aplicação web não consigo. O problema estava aí, o código que mostrei era desenvolvido numa aplicação web! Quando inicio o debug da aplicação web o led do leitor de cartões começa a piscar e depois é retornado um OBJECT_NOT_FOUND error na função GetID() :(

Saberá por acaso como poderei eu, via uma aplicação web, retirar os dados do cartão do cidadão e guardalos na Database?

Melhores Cumprimentos,

Frank

 

Coordinator
Mar 9, 2010 at 8:36 PM

Caro Frank,

Para a transmissão de certificados de cliente já existe "suporte" pré-disponível no ASP.NET e nos SOs e Browsers que invocam o seu website, dai conseguir aceder ao ClientCertificate.
O que deseja efectuar é uma funcionalidade que necessitará de executar no computador cliente que está a aceder ao seu website, o que por defeito não existe "suporte". Necessitará de desenvolver um componente (Javascript ou ActiveX) que é instalado ou executado no computador cliente, e que consuma as bibliotecas do Cartão de Cidadao.

No entanto, aproveito para referir em termos gerais/guidelines que ainda mais que a autenticação, a obtenção de informação do cidadão via cartão de cidadão deverá ser sempre, considerada como uma funcionalidade extra que uma aplicação fornece, sendo que o Cidadão tem o direito de se recusar a providênciar os dados públicos contidos no cartão, bem como os privados (Morada).

Cumprimentos,
Fernando

Mar 9, 2010 at 9:12 PM

Caro Fernando Nunes,

Muito obrigado pela sua resposta.

Eu já tinha referido essa solução que o me descreveu no seu  post no meu post anterior. Já está a funcionar, consigo aceder aos dados do certificado, SN, CN, Subject's SN, etc..

Quando à colecta dos outros dados do cartão do cidadão, sempre tive a feedback e accept request rule respectiva aos ditos dados em mente. Eu já tinha lido alguns posts sobre usar ActiveX para essa parte, mas procurava por uma solução mais simples, uma do genéro a solução dos certificados; seria uma maravilha!

Melhores Cumprimentos,

Frank

 

Coordinator
Mar 11, 2010 at 7:39 PM

Frank,

Como o acesso aos dados não está "standartizado" como o acesso a funcionalidades de encriptação, será necessário que o Middleware esteja instalado no computador do cliente, pois o mesmo é que sabe como gerir esses dados.
A partir dai, tudo depende que suporte é que o Middleware disponibiliza por Sistema Operativo e ás várias linguagens de programação.
No caso de uma aplicação Web o único meio de interacção pré-existente com o computador do cliente é o Browser e ou se consegue via Javascript consumir as bibliotecas disponibilizadas pelo Middleware, ou será necessário instalar software adicional.
Quando falei em ActiveX, até poderia ter falado em Silverlight, seja como for, é software adicional. A partir dai a escolha é sua, com base no âmbito e requisitos que tem.

Não tenho nada feito nesse aspecto, no entanto se encontrar algo ou produzir algo que deseje partilhar não hesite em deixar o seu contributo.

Cumprimentos,
Fernando

Mar 11, 2010 at 10:37 PM

Caro Fernando Nunes,

Sim, sempre tive o que me disse em mente pelo que sabia até então, mas nunca pus de parte que pudesse existir algo que eu desconhecesse e me podesse facilitar a vida. Entrentanto as soluções com o recurso a Silverlight/ActiveX/JS foram o que encontrei até agora. Logo que tenha algo de novo, concerteza que deixarei aqui o contributo :)!

Melhores Cumprimentos,

Frank

May 18, 2010 at 4:50 PM

Caro Fernando Nunes,

Antes de mais muitos parabéns pelo seu contributo neste tema. Penso que todos os que fizeram download e obtiveram informações suas deverão pensar o mesmo.

Estou envolvido num projecto para implementar um componente COM (Interop) para ser consumido por uma aplicação. O objectivo desta componente será para obter os dados do cartão do cidadão (nome, data nascimento, etc) e assinar digitalmente documentos PDF.

Já experimentei os ficheiros deste site (os binários e código fonte). Ambos funcionam lindamente.

O problema reside quando tento incluir o eidpt.dll no projecto (.NET) do componente COM. O erro que obtenho é devido ao eidpt.dll não estar assinado: "Error 1 Assembly generation failed -- Referenced assembly 'eidpt' does not have a strong name". Já tentei tudo mas o erro persiste.

Já tentei inclusivamente reassemblar o DLL (ver http://ryanfarley.com/blog/archive/2010/04/23/sign-a-.net-assembly-with-a-strong-name-without-recompiling.aspx), mas dá erro ao tentar recompilar o DLL assinado.

Por favor, agradeço a sua ajuda.

PS: Estou a utilizar o C# no Visual Studio 2008.

Os meus melhores cumprimentos,
Joel.

Coordinator
May 20, 2010 at 12:30 AM

Joel,

De facto o dll não está assinado mas para incluir um StrongName é bastante fácil. Existem várias maneiras:

 - Nas propriedades do Projecto:
Definir "Linker -> Advanced -> Key File" com o caminho para o ficheiro com as chaves.

 - No ficheiro AssemblyInfo.cpp adicionar os atributos:
[assembly:AssemblyKeyFile("..\\eidpt.snk")]

 - Utilizar as opções do compilador:
/KEYFILE: "eidpt.snk"

 - Efectuar o processo manualmente com o utilitário AL.EXE


No caso de ser executado um passo que invalide o StrongName (por exemplo execução do utilitário mt.exe), será necessário re-assinar o ficheiro, com o utilitário SN.EXE. Para tal:

 sn -R eidpt.dll ..\eidpt.snk


Devido a já estar a utilizar o Visual Studio 2010 e a .NET Framework 4.0 o projecto foi actualizado e de momento não me é possível recompilar o dll de C++ agilmente. No entanto poderá sempre efectuar o download do código fonte e efectuar essa operação. Se por algum motivo não lhe for possível compilar a dll a partir do código-fonte, diga, que eu trato do assunto.

Cumprimentos,
Fernando

May 20, 2010 at 10:03 AM

Fernando,

Antes de mais, obrigado pela sua ajuda e suporte!

Voltei a compilar o DLL com o meu ficheiro de chaves e correu tudo sem problemas. Ao tentar associar o novo DLL no meu projecto COM o DLL já aparece como "StrongName". Para chegar a este ponto só tive que seguir as suas indicações: mais concretamente os dois primeiros pontos, visto que a opção /KEYFILE no compilador é associada automaticamente quando inserimos o atributo do AssemblyKeyFile no Assembly, certo ?

No entanto, ao tentar executar o método do COM, o sistema retorna uma mensagem de erro:

"Ocorreu um problema ao chamar o membro Helloworld.
Teste1 devolveu a  seguinte mensagem
Could not load file or assembly 'eidpt, Version =1.21.2.0,
Culture=neutral, PublicKeyToken=xxxxxxxx or one of its
dependencies. The system cannot find the file specified."

O que devo fazer ?

Os meus melhores cumprimentos,
Joel.

Coordinator
May 20, 2010 at 12:15 PM

Joel,

Experimente dar uma olhadela em http://blogs.msdn.com/suzcook/archive/2003/05/29/57120.aspx. Esse erro pode ser devido a n coisas mas estou mais virado para o runtime de .net não encontrar o eidpt.dll, num determinado caminho nem na GAC.

Cumprimentos,
Fernando

May 21, 2010 at 10:42 AM

Fernando,

Não sei porque, mas somente quando voltei a registar o eidpt.dll pela segunda vez através do GACUTIL e REGASM é que ficou a funcionar... Problem solved!

Mais uma vez, muito obrigado pela sua ajuda. Foi fundamental para solucionar os problemas com que deparei.

Os meus melhores cumprimentos,
Joel.

Jun 1, 2010 at 10:57 AM
Bom dia Fernando, Tenho mais um problema e talvez consiga ajudar-me... Tentei utilizar o seu programa de exemplo "DemoCartaoCidadao" e converti-o para um DLL COM, tudo funciona perfeitamente com excepção da imagem. Ao analisar, percebi que a fotografia que está no cartão do cidadão encontra-se no formato JPEG 2000 e o seu programa DEMO utiliza um DLL de terceiros (CSJ2K.DLL). O problema é que esta DLL não possui "strong name" - O mesmo problema que tive com o EIDPT.DLL. Enquanto que com o EIDPT.DLL o Fernando forneceu o código fonte, foi possível alterar o código para incluir um certificado e voltar a compilar um novo DLL (EIDPT). Já com o CSJ2K, o código fonte fornecido é obsoleto e não consigo compilá-lo. O VS2008 nem se quer o reconhece !! Como posso ultrapassar este problema? Tem alguma sugestão ? Mais uma vez, obrigado pela sua ajuda! Joel.
Coordinator
Jun 3, 2010 at 12:04 AM
Joel, Poderá fazer o download do Source Code do ChangeSet 24175 do CSJ2K em http://csj2k.codeplex.com/SourceControl/changeset/view/24175# Foi exactamente essa versão que utilizei e eu próprio compilei para inclusão no programa de demonstração. De entre os vários projectos presentes no código fonte, apenas o CSJ2K é o que interessa, que é a implementação em C# da biblioteca. Cumprimentos, Fernando
Jun 4, 2010 at 9:55 AM

Bom dia Fernando,

Mais uma vez, foste o salvador da pátria !

Obrigado!
Joel.

Jul 7, 2010 at 6:30 PM
Edited Jul 7, 2010 at 6:32 PM
Fernando, estou com um problema. Ao importar o teu código de autenticação para a minha aplicação estoira com a seguinte msg erro: Não foi possível carregar o ficheiro ou assemblagem 'eidpt, Version=1.21.2.0, Culture=neutral, PublicKeyToken=null' ou uma das respectivas dependências. Foi efectuada uma tentativa de carregar um programa com um formato incorrecto. Desde já agradeço possível contributo para ultrapassar este problema. Nota: estou a usar Microsoft Visual Studio 2008 (C Sharp) com a framework 3.5.
Coordinator
Jul 8, 2010 at 10:51 PM
x64 ou x32 ?
Jul 9, 2010 at 11:41 AM

Obrigado Fernando,

Já consegui ultrapassar esta dificuldade.

Fui a properties, Build e em Platfotm alterei para x86.

Obrigado

Dec 27, 2010 at 12:25 PM
Edited Dec 27, 2010 at 2:07 PM

Boa tarde,

Tenho utilizado, este projecto sempre com sucesso, mas há pouco tempo ao fazer o build da aplicação começou-me a dar este erro, alguem me poderá explicar porque? porque antes funcionou sempre e de um dia para o outro passou a dar este erro mais frequentemente e actualmente já não me consigo livrar deste erro.

Error 1 fatal error LNK1256: ALINK operation failed (80040414) : Error reading key file 'c:\Users\Joao Mourao\Desktop\New folder (2)\eidpt\\eidpt.snk' -- The system cannot find the file specified.  eidpt eidpt

Cumprimentos

 

Coordinator
Dec 27, 2010 at 10:15 PM

João,

Esse erro é devido ao seu projecto estar com a opção para ser assinado digitalmente com uma chave que não consta no seu Filesystem.

Sugiro que vá ás propriedades do projecto e remova a opção de assinar o projecto.

Cumprimentos,
Fernando Nunes 

Dec 28, 2010 at 4:57 PM

Fernando,

Poderia explicar-me melhor como remover essa opção do projecto?

Estou a trabalhar em C# e sinceramente não percebi como é que se começou a dar este erro, nem algo para ter a certeza como se resolve.

 

Cumprimentos e Obrigado em avançado

João Mourão

 

 

Coordinator
Dec 28, 2010 at 8:17 PM

Caro João,

Resumidamente, deverá clicar com o botão direito sobre o seu projecto, escolher a opção "Properties", ir ao separador "Signing" e remover a opção: "Sign the assembly" ou qualquer outra opção de ClickOnce que esteja activa nessa página.
Caso deseje, poderá obter mais informações sobre a assinatura de bibliotecas ou executáveis em: http://msdn.microsoft.com/en-us/library/ms247066.aspx.

Se mesmo assim ainda tiver problemas, sugiro que consulte outros websites especificos para ajuda em programação, como por ex. http://www.portugal-a-programar.org/forum/index.php uma vez que a dificuldade que está a ter foge do âmbito deste projecto.

Atentamente,
Fernando Nunes 

Jan 7, 2011 at 5:30 PM

Boa tarde,

já consegui ultrapassar a ultima dificuldade, mas agora defrontei-me com uma nova dificuldade

o programa em modo debug funciona como esperado, quando faço o build para o modo release o programa crasha logo inicialmente, ele instancia as threads de card inserted etc etc, mas logo apos ele crasha

já experimentei o demo do cartão do cidadão aqui mencionado e aconteçe exactamente a mesma coisa, uma das mensagens que exibe é "Attempted to read or write protected memory. This is often an indication that other memory is corrupt. " isto quando acede a função insert card reader

haverá algum conflito nas plataformas(o que acho estranho que em debug funciona) ou já alguem teve a mesma situação? ou alguma possivel solução?

 

Cumprimentos

Jan 21, 2011 at 10:58 AM

Bom dia,

 

novamente e apos muito esforço já consegui resolver a situação, para a posterioridade fica aqui o meu metodo de resolução,

 

após ter o programa a correr em debug, utilizar o depends.exe (dependecy walker) para ver quais as .DLL que são necessárias para a aplicação correr em outras maquinas, todas as .DLL que estejam com um ponto de interrogação a amarelo, façam um find na maquina em que a aplicação corre e copiem para a pasta release até que já não haja .dll a amarelo no Depends.exe

 

e esta solução funcionou para mim

 

Obrigado e Cumprimentos

João Mourão

Apr 1, 2011 at 10:59 AM

Muito bom dia a todos,

 

Eu necessitava de ajuda se fizessem o favor, estou a desenvolver uma aplicação que interage com o CC, a aplicação está quase terminada e em sistemas de 32 bit funciona perfeitamente, mas em 64 bit há problemas com a DLL "eidpt.ddl", penso que está é única e exclusivamente compatível com 32 bit.

 

Alguém teve o mesmo problema?

Alguém sabe como resolver?

 

Agradecia uma resposta breve dado que termino a formação em contexto de trabalho a 8 de Abril.

 

Cumprimentos,

Gil Mendes

Coordinator
Apr 2, 2011 at 10:33 AM

Caro windowstec,

Estive a actualizar-me do assunto e foi lançado para Windows um novo Middleware já para 64bits em Janeiro deste ano (v1.24) que está disponível em: http://www.cartaodecidadao.pt/index.php?option=com_content&task=view&id=102&Itemid=44&lang=pt.

Ficará disponível em C:\Windows\System32 o pteidlib_dotnet.dll que suporta 64bits e que poderá utilizar (não efectuei testes, apenas validei que era uma biblioteca 64bits).
A pteidlib_dotnet.dll é a biblioteca oficial e em especial desde que foi "limpa"* deverá ser a biblioteca de referência, apesar de existirem alternativas como a eIDPT.
* (a integração para .NET deixava a desejar, não em termos de funcionalidade, mas de exportação da API)

 

Quanto á eIDPT:

Tal como referido na página inicial:

Platform Support

  • Windows 2000, XP, Vista, 2008 and 7 for both x86 and x64 (under WOW64)

WoW64 refere-se a Windows on Windows, que é executar programas 32bits num host 64bits. Ou seja, o output do Projecto que está a fazer (library, console app, etc...) precisa de ser 32bits e a mesma irá funcionar em 64bits. É o que está disponibilizado pelo Middleware publico, a pteidlib.lib que eu saiba apenas suporta 32bits.

De momento não pode ser lançada para 64bits (nativo) porque o pteidlib.lib constante na v1.24 também é de 32bits (apenas encontrei c:\ProgFiles\Cartão Cidadão\sdk\pteidlib.lib de 2009)
Por curiosidade também efectuei testes com o BaseCSP que está disponível na versão 0.12.0 do OpenSC, mas para que emule o comportamento da PTEIDMDRV64.dll ainda será necessário algum  desenvolvimento sobre o mesmo (alimentação dos pins, etc.. etc...).

 

Espero que tenha sido esclarecedor e se for preciso mais alguma coisa, dentro do possível cá estou para responder.

Atentamente,
Fernando Nunes 

Apr 2, 2011 at 1:56 PM

OK, muito obrigado.

Segunda feira é que posso ver isso já que em casa não tenho o leitor.

 

Cumprimentos,

Gil Mendes

Apr 4, 2011 at 9:29 AM

Bom dia,

Estou com um pequeno problema.

E os Handler's? Já não tem o SCWatcher, como posso fazer?

 

Cumprimentos,

Gil Mendes

Coordinator
Apr 7, 2011 at 12:07 PM

Quanto ao SCWatcher, ou utiliza a eidpt, ou poderá obter o código fonte do mesmo e incorporar numa biblioteca a seu belo gosto.

Também há a possibilidade de portar o código para .NET 100% Managed e efectuar as chamadas à API de SmartCards via PInvoke.

 

Cumprimentos,
Fernando 

Jul 25, 2011 at 3:19 PM

Isto funciona tudo bem em x32 mas para x64 não ....

da sempre isto Could not load file or assembly 'ActiveXDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Coordinator
Jul 25, 2011 at 10:37 PM

Caro Gonçalo,

Quando diz isto, refere-se ao quê em concreto ?
Se puder elaborar melhor com qual componente é que está com dificuldade ?

Cumprimentos,
Fernando

Jul 26, 2011 at 7:12 PM

Boa tarde!

estou a tentar utilizar a vossa dll para aceder ao cartão do cidadão e estou a ter o seguinte erro:

"Could not load file or assembly 'eidpt.dll' or one of its dependencies. Impossível localizar o módulo especificado."

sabem como posso dar a volta a isto? o meu pc é 64bits será por isso? ou estarei a fazer algo de errado?

 

Agradecia mais do que muito a vossa ajuda.

 

cumps

watt

 

Jul 26, 2011 at 9:31 PM

Altera o deplay da aplicação para x32, como já foi explicado neste thread pelo xerife1977

Jul 27, 2011 at 1:16 AM
Edited Jul 27, 2011 at 12:26 PM
jmourao wrote:

Altera o deplay da aplicação para x32, como já foi explicado neste thread pelo xerife1977

eu aqui no meu pc não tenho x32 só x86 e x64, ponho x86 e tenho o erro... Impossível localizar o módulo especificado. (Excepção de HRESULT: 0x8007007E)

Jul 27, 2011 at 4:03 PM

Hellllpppp descobri o problema... acho eu! testei o meu programa com o CC. O meu cartão é versão 8 e não consigo ler, mas com um cartão versão 4 já deu bem.

Dec 14, 2011 at 2:06 PM

Boa Tarde

Tambem estou a "tentar" fazer uma pequena aplicação para ler o CC.

Já fiz o download da demo e testei e funcionou.

Reparei que está tudo em C# mas eu estou a programar em VB.net. De C# não sei nada e de VB pouco.

Fiz alterações para vb e correu tudo bem na minha maquina. Acedo ao cartao e vejo a informação básica(que é o que pretendo).

Quando tento instalar noutras mquinas dá o tal erro

"could not load file or assembly eidpt. version=1.21.2.0. Culture=neutral. PublicKey Token=null".

Como está em VB não sei o que fazer.

Outra coisa, é possivel ter uma aplicação que lê o CC sem instalar o software do cartao do cidadao.

Peço ajuda

Dec 14, 2011 at 2:46 PM

Tens de instalar o "Microsoft Visual C++ Redistributable". Sugiro a versão mais recente:

 Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)

http://www.microsoft.com/download/en/details.aspx?id=8328

 

Atenção! Independentemente do sistema operativo (32 ou 64 bits) onde instalar a aplicação, tem de instalar a versão do "Microsoft Visual C++ Redistributable" correspondente à plataforma na qual a aplicação foi desenvolvida (32 ou 64 bits).

 

Relativamente a ter uma aplicação sem ter de instalar o software do cartão de cidadão, tal não é possível, tal como se pode constatar lendo o “ReadMe.txt” que acompanha o código-fonte da DLL eIDPT: “[…]The corresponding Middleware needs to be installed on machines that make use of eIDPT, which can be found at: http://www.cartaodecidadao.pt/ […]

 

Dec 15, 2011 at 9:42 AM
arknum wrote:

[...]

Quando tento instalar noutras mquinas dá o tal erro

"could not load file or assembly eidpt. version=1.21.2.0. Culture=neutral. PublicKey Token=null".

Como está em VB não sei o que fazer.

Outra coisa, é possivel ter uma aplicação que lê o CC sem instalar o software do cartao do cidadao.

Peço ajuda

Parece-me que falta-te a assembly de referência da eidpt.dll. Compila o wrapper que está no source de modo a obteres a dll da mesma e resolves isso. Continua a ter atenção que a aplicação não compila directamente para 64bits como disse o Fernando.

Platform Support

  • Windows 2000, XP, Vista, 2008 and 7 for both x86 and x64 (under WOW64)

WoW64 refere-se a Windows on Windows, que é executar programas 32bits num host 64bits. Ou seja, o output do Projecto que está a fazer (library, console app, etc...) precisa de ser 32bits e a mesma irá funcionar em 64bits. É o que está disponibilizado pelo Middleware publico, a pteidlib.lib que eu saiba apenas suporta 32bits.


No final a tua aplicação acaba no máximo de ter de compilar para WOW64 ou seja no VS é o Any CPU, por exemplo, ou x86.

Jan 19, 2012 at 12:56 PM

Olá a todos.

Comecei a desenvolver uma pequena aplicação, a partir do código fonte da Demo existente.

Agora tenho um problema: Com a utilização da livraria eIDPT_.NET_v1.21.2 não consigo ler cartões mais recentes. Sei que os de 2009 consigo, mas os de 2010 em diante já não. Existe algum sítio onde consiga fazer o download da nova versão da livraria?

Reparei aqui que o FernandoNunes diz que "A pteidlib_dotnet.dll é a biblioteca oficial e em especial desde que foi "limpa"* deverá ser a biblioteca de referência, apesar de existirem alternativas como a eIDPT." E com isto tentei retirar a livraria eiDPT.dll e colocar no meu projeto a nova pteidlib_dotnet.dll, mas agora tenho o projeto cheio de erros, porque as os métodos têm nomes diferentes :(

 

Alguém me consegue disponibilizar a nova versão da eiDPT.dll ou explicar como é que, em alternativa, utilizo então a pteidlib_dotnet.dll???

Obrigado desde já...

Jan 19, 2012 at 2:21 PM

Viva.

Começa por ler http://cartaodecidadao.codeplex.com/discussions/234916

No meu caso modifiquei a listas knownCards:

        private List<string> knownCards = new List<string>(new string[] 
        { 
            /* VERSÃO ORIGINAL */
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00", 
            "3B 95 95 40 FF D0 00 54 01 31", 
            "3B 95 95 40 FF D0 00 54 01 32",
            "3B 7B 94 00 00 80 65 B0 83 01 01 74 83 00 90 00",
            "3B 6B 00 00 80 65 B0 83 01 01 74 83 00 90 00",
            /* /VERSÃO ORIGINAL */
            /* fips 140 version */
            "3B 6B 00 00 80 65 B0 83 01 03 74 83 00 90 00",
            /* Undefined */
            "3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43",
            "3B 7D 94 00 00 80 31 80 65 B0 83 01 01 90 83 00 90 00",
            /* Portuguese eID cards */
            "3B 65 00 00 D0 00 54 01 31",
            "3B 65 00 00 D0 00 54 01 32",
            "3B 95 95 40 FF D0 00 54 01 31",
            "3B 95 95 40 FF D0 00 54 01 32",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 00 C8 83 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 00 C8 83 00 90 00"
        });
Jan 19, 2012 at 4:55 PM
mjda wrote:

Viva.

Começa por ler http://cartaodecidadao.codeplex.com/discussions/234916

No meu caso modifiquei a listas knownCards:

        private List<string> knownCards = new List<string>(new string[] 
        { 
            /* VERSÃO ORIGINAL */
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00", 
            "3B 95 95 40 FF D0 00 54 01 31", 
            "3B 95 95 40 FF D0 00 54 01 32",
            "3B 7B 94 00 00 80 65 B0 83 01 01 74 83 00 90 00",
            "3B 6B 00 00 80 65 B0 83 01 01 74 83 00 90 00",
            /* /VERSÃO ORIGINAL */
            /* fips 140 version */
            "3B 6B 00 00 80 65 B0 83 01 03 74 83 00 90 00",
            /* Undefined */
            "3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43",
            "3B 7D 94 00 00 80 31 80 65 B0 83 01 01 90 83 00 90 00",
            /* Portuguese eID cards */
            "3B 65 00 00 D0 00 54 01 31",
            "3B 65 00 00 D0 00 54 01 32",
            "3B 95 95 40 FF D0 00 54 01 31",
            "3B 95 95 40 FF D0 00 54 01 32",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 00 C8 83 00",
            "3B 7D 95 00 00 80 31 80 65 B0 83 11 00 C8 83 00 90 00"
        });

 

Viva mjda. Era mesmo este o problema! Muito obrigado pela resposta e pela rapidez !!

Sep 11, 2012 at 4:59 PM

Boas tardes.

Alguém tem a nova lista de knownCards ??

Testei a minha aplicação com um cartão feito em Janeiro de 2012 e não funciona. O que me leva a crer que tenham criado novos ID's :(

Ainda não consegui descobri-los. Se alguém souber que faça um post...

 

Obrigado!

Coordinator
Nov 12, 2012 at 9:04 PM

Para informações referentes ao assunto da lista de ATRs por favor consultem o tópico http://cartaodecidadao.codeplex.com/discussions/402928

Nov 13, 2012 at 9:12 AM
Muito obrigado pelo esclarecimento. Por acaso tinha mesmo ideia que é obrigatória a validação através da lista de ATR's.

Cumprimentos,
André Petinga



From: [email removed]
To: [email removed]
Date: Mon, 12 Nov 2012 13:04:42 -0800
Subject: Re: Documentation [cartaodecidadao:80752]

From: FernandoNunes
Para informações referentes ao assunto da lista de ATRs por favor consultem o tópico http://cartaodecidadao.codeplex.com/discussions/402928
Read the full discussion online.
To add a post to this discussion, reply to this email (cartaodecidadao@discussions.codeplex.com)
To start a new discussion for this project, email cartaodecidadao@discussions.codeplex.com
You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.
Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com
May 8, 2013 at 2:03 PM
Boa tarde,

Estou a "tentar" fazer uma pequena aplicação para ler o CC.

Já tenho código desenvolvido mas é em aplicação ( CSharp ) não em Web (Aspx).
Gostaria assim de saber se é possível desenvolver em ambiente Web ( Aspx ) e quais os principais passos a realizar
pois encontrei problemas a nível do " X509Certificate2Collection".

Obrigado.