Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 80 odgovora
  • 56.506 pregleda

Najnovija ↓

Re: Citac licnih karti celikapi.h 12.03.2010. u 10:16 · pre 202 meseca #41
[SuppressUnmanagedCodeSecurity()]
public class myIDUnsafeNativeMethods
{
[DllImport(GlobalConstants.myIDApi, CharSet = CharSet.Unicode)]
static internal extern int EidStartup(
int nApiVersion
);

[DllImport(GlobalConstants.myIDApi, EntryPoint = "EidCleanup", CharSet = CharSet.Unicode)]
static internal extern int EidCleanup(
);

[DllImport(GlobalConstants.myIDApi, CharSet = CharSet.Unicode)]
static internal extern int EidReadFixedPersonalData(
ref tagEID_FIXED_PERSONAL_DATA pData
);

[DllImport(GlobalConstants.myIDApi, CharSet = CharSet.Unicode)]
static internal extern int EidReadDocumentData(
ref tagEID_DOCUMENT_DATA pData
);

[DllImport(GlobalConstants.myIDApi, CharSet = CharSet.Unicode)]
static internal extern int EidBeginRead(
[MarshalAs(UnmanagedType.LPStr)] String szReader
);
...



[SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)]
public myResult ReadData()
{
myResult tmpResult = new myResult();
int ret;

ret = myIDUnsafeNativeMethods.EidBeginRead(_deviceName);
if (ret < 0)
{
tmpResult.errorCode = ret;
tmpResult.errorMessage = GetErrorMessage(ret) + " _EidBeginRead";
myIDUnsafeNativeMethods.EidEndRead();
return tmpResult;
}
ret = myIDUnsafeNativeMethods.EidReadDocumentData(ref tmpResult.eIdDocumentData);
if (ret < 0)
{
tmpResult.errorCode = ret;
tmpResult.errorMessage = GetErrorMessage(ret) + " _EidReadDocumentData";
myIDUnsafeNativeMethods.EidEndRead();
return tmpResult;
}
...
Nema nekih detalja :) idem kroz kod, EidBeginRead vrati 0, dodjem do EidReadDocumentData i dobijem EID_E_READER_ERROR = -6; Cini mi se da sedmica daje drugacija imena USB uredjajima od XP-a, to sam primetio pomocu ovog programceta http://www.nirsoft.net/utils/usb_devices_view.html, eksperimentisao sam sa _deviceName, ali onda dobijem EID_E_UNABLE_TO_EXECUTE = -5; Dublje od toga ne mogu da udjem kroz debug (cekirao sam u project properties "Enable unmanaged code debug").
Re: Citac licnih karti celikapi.h 04.05.2010. u 12:42 · pre 200 meseci #43
nepodmitljivi, da li možeš ti ili neko drugi ko je koristio dll iz C# / VB.NET-a da mi pokažeš kako si definisao strukturu EID_DOCUMENT_DATA ?

sve mi prolazi bez problema, ali kada god pozovem EidReadDocumentData, dobijem AccessViolationException "Attempted to read or write protected memory. This is often an indication that other memory is corrupt"

prethodne funkcije vracaju eid_ok i sve radi kako treba.

za naziv uredjaja saljem prazan string ("") posto imam samo jedan citac na sistemu.

isto koristim gemalto citac, isto koristim windows 7, medjutim razlika je sto sam aplikaciju testirao i na Win XP (na kojem takodje imam drajvere i radi mup-ova aplikacija) i tu takodje puca pri pozivu EidReadDocumentData

može li iko da mi pomogne?

evo je moja trenutna definicija za eid_document_data, ma da sam probao hiljadu razlicitih nacina do sada:
Code:
        [StructLayout(LayoutKind.Sequential, Size = EID_MAX_IssuingAuthority + EID_MAX_IssuingDate + EID_MAX_DocRegNo + EID_MAX_ExpiryDate), Serializable]
        public class EID_DOCUMENT_DATA
        {
            [MarshalAsAttribute(UnmanagedType.LPStr, SizeConst = EID_MAX_DocRegNo)]
            public string docRegNo;
            public int docRegNoSize;
            [MarshalAsAttribute(UnmanagedType.LPStr, SizeConst = EID_MAX_IssuingDate)]
            public string issuingDate;
            public int issuingDateSize;
            [MarshalAsAttribute(UnmanagedType.LPStr, SizeConst = EID_MAX_ExpiryDate)]
            public string expiryDate;
            public int expiryDateSize;
            [MarshalAsAttribute(UnmanagedType.LPStr, SizeConst = EID_MAX_IssuingAuthority)]
            public string issuingAuthority;
            public int issuingAuthoritySize;
        };


(smatram da je nepotrebno da postavljam ostatak koda koji imam jer su definicije funkcija uglavnom identicne kao u kodu koji je postavio nepodmitljivi)
Re: Citac licnih karti celikapi.h 20.07.2010. u 22:31 · pre 198 meseci #44
Ako je tema ziva jos uvek... Treba mi prikaz podataka sa LK u VB.netu.... onaj celik api sto je okacen na MUP sajtu ne moze da je upotrebi ili ja ne znam kako to da uradim...
Da li je neko pokusao da integrise celik u VB.net ...svaka pomoc bi mi bila dobrodosla

Hvala
Re: Citac licnih karti celikapi.h 07.09.2010. u 12:40 · pre 196 meseci #45
Treba da nekako prosledim ime i prezime koje pročitam sa lične karta nekom mom php skriptu. E sad, problem je kao što je i pisano ovde, što je ime i prezime na ćirilici i ne znam kako da ga prosledim, da li da nekako (ne znam kako) to u samom c++ "prevedem" na latinicu ili kako? Ono sa MultiByteToWideChar mi nije baš najjasnije.

Vidim da neko vreme nije pisano na ovoj temi ali ako je neko nešto konkretno uradio povodom toga bio bi mu zahvalan na pomoći.
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Citac licnih karti celikapi.h 07.09.2010. u 12:47 · pre 196 meseci #46
Ime i prezime na samoj ličnoj karti je UTF-8. Samo prosledi to PHP-u, i transliteruj ako želiš bilo pre, bilo posle slanja.

Pogledaj i http://gitorious.org/freesteel za alternativu, može ti biti zgodnije za integraciju.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Citac licnih karti celikapi.h 07.09.2010. u 13:14 · pre 196 meseci #48
http://blog.goranrakic.com/arc..._licne_karte_za_gnulinuks.html

Citat:

Predstavljam vam slobodan čitač elektronske karte, od milja nazvan FreeSteel. Trenutno, FreeSteel je jednostavna Python skripta koji se oslanja na pyscard i PC/SC i radi na svim poznatim platformama (Linux, Windows, MacOS X). Skript se poziva iz terminala, i ispisuje informacije inače vidljive kroz besplatnu aplikaciju Čitač Elektronske Lične Karte za Windows. Sa argumentom -p program čuva sliku sa lične karte u datoteku <JMBG>.jpg, moguće je i navesti posebno ime sa -p moja_slika.jpg. Opcije -q i -s omogućavaju izvoz X.509 sertifikata sa javnim delom ključa za kvalifikovani i običan elektronski potpis.


Trebalo bi da MUP ima i CelikAPI biblioteku i aplikaciju za GNU/Linuks, ali ja do toga nisam uspeo da dođem. Pokušavam da dođem do tehničke specifikacije operativnog sistema na kartici.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Citac licnih karti celikapi.h 07.09.2010. u 13:18 · pre 196 meseci #49
Citat:
Goran Rakić: Ime i prezime na samoj ličnoj karti je UTF-8. Samo prosledi to PHP-u, i transliteruj ako želiš bilo pre, bilo posle slanja.

Pogledaj i http://gitorious.org/freesteel za alternativu, može ti biti zgodnije za integraciju.


Da stavim www.nesto.com/skirpt.php?name=ВЛАДИМИР

Pokušavao sam to al neće tako. Kako si ti tačno uspevao?
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Citac licnih karti celikapi.h 07.09.2010. u 13:28 · pre 196 meseci #50
Šta ti je to "╨Æ╨¢╨É╨ö"?

Ako uradiš ispravan UTF-8 urlencode parametra skript.php?name=GORAN (ćirilicom) radi sasvim normalno (postaje skript.php?name=%D0%93%D0%9E%D0%A0%D0%90%D0%9D) i očitavaš $_GET['name'] kao UTF-8 nisku u PHP-u. Ako koristiš neku biblioteku za slanje HTTP GET zahteva, pogledaj kako ona radi sa UTF-8 tekstom i da li očekuje da urlencode odradiš ti ili biblioteka to radi umesto tebe.

Ne znam koji alat koristiš pa ne mogu da ti više pomognem. Vodi računa da UTF-8 ne učitavaš u široki char tip, već u bajtovsku nisku ili da odradiš ispravnu konverziju (ne preko trenutne sistemske kodne strane). Vodi računa da urlencode koji bi koristio potržava višebajtni UTF-8 zapis.

Problem koji imaš nema veze sa ličnom kartom već time što ne znaš kako da radiš sa UTF-8 tekstom.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Citac licnih karti celikapi.h 07.09.2010. u 14:02 · pre 196 meseci #51
Citat:
Goran Rakić:...
Problem koji imaš nema veze sa ličnom kartom već time što ne znaš kako da radiš sa UTF-8 tekstom.


Upravo tako.

Možda nisam dovoljno precizno formulisao pitanje, moj je i problem što ne znam da radim sa utf-om u C/C++.
Znači kako da iz onog

char givenName[EID_MAX_GivenName];
int givenNameSize;

ja "lepo" pročitam tu ćirilicu i prosledim je php skriptu?
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Citac licnih karti celikapi.h 07.09.2010. u 14:08 · pre 196 meseci #52
Zavisi od toga kako je prosleđuješ i da li tvoj PHP očekuje UTF-8 ili CP1251 ili neki drugi kodni raspored? (Ako bi pravio HTML formular, šta bi stavio kao meta charset?)
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Citac licnih karti celikapi.h 07.09.2010. u 14:57 · pre 196 meseci #54
Ako binarne rezultate iz C++ prikazuješ u PHP preko HTML-a, dovoljno je da u header ubaciš:

Code:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
</head>
Potpis
Ipak se ++uje.
Re: Citac licnih karti celikapi.h 07.09.2010. u 15:07 · pre 196 meseci #56
Moj problem je više sa C++ strane, PHP je u redu. Kada bih ja mogao da u C++-u generišem nešto ovako:

skript.php?name=%D0%93%D0%9E%D0%A0%D0%90%D0%9D

to radi bez problema. I vrednost je promenljive name je GORAN.

Ja iz ovog niza karaktera "char givenName[EID_MAX_GivenName];" kad pročitam šta piše dobijem ovo "╨Æ╨¢╨É╨ö". Inače pravi tekst koji se krije je "VLADIMIR" i to su 8 karaktera, vrednost promenljive givenNameSize je 16 odnosno niz givenName ima 16 elemenata, po dva za svako ćirilično slovo.

Ono što ja ne znam je kako da iz tog niza karaktera "givenName" dobijem vrednost kao na primer "%D0%93%D0%9E%D0%A0%D0%90%D0%9D" koju bi lepo prosledio u URL i posle bi bilo sve ok.
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Citac licnih karti celikapi.h 07.09.2010. u 15:09 · pre 196 meseci #57
Imam

char* link = "http://localhost/licna_karta.php?name=";

posle na to treba da dodam vrednost i pozovem

ShellExecute(NULL, "open", a, NULL, NULL, SW_SHOWNORMAL);

Btw "a" je isto tipa char* na koji je nadovezana vrednost promenljive
Potpis
"If you do what you always did! - You will get what you always got!"
Re: Citac licnih karti celikapi.h 07.09.2010. u 15:40 · pre 196 meseci #59
Citat:
MAD-MAX: Moj problem je više sa C++ strane, PHP je u redu. Kada bih ja mogao da u C++-u generišem nešto ovako:

skript.php?name=%D0%93%D0%9E%D0%A0%D0%90%D0%9D

to radi bez problema. I vrednost je promenljive name je GORAN.


Aha. Pa to prevodiš u bazu 16, bajt po bajt. Dakle, ako imaš niz od dva bajta (unsigned char-a) 80 i 100. Njih ćeš slati kao: %50%64, jer je 80 u bazi 16 = 50, a 100 u bazi 16 = 64.
Potpis
Ipak se ++uje.
Re: Citac licnih karti celikapi.h 07.09.2010. u 15:44 · pre 196 meseci #60
Kao što rekoh, potrebno je da name provučeš kroz urlencode:

Code (c):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define hex(c) ( (c)<10 ? '0'+(c) : 'A'+(c)-10 )

char *urlencode(char *s) {
  char *ret = malloc(strlen(s)*3+1), *p = ret;
  while (*s) {
    if (isalnum(*s) || *s == '-' || *s == '_' || *s == '.')
      *p++ = *s;
    else if (*s == ' ')
      *p++ = '+';
    else {
      *p++ = '%';
      *p++ = hex(0xF & (*s>>4)); // visi polubajt
      *p++ = hex(0xF & *s);      // nizi polubajt
    }
    s++;
  }
  *p = '\0';
  return ret;
}

int main() {
  char *str = "GORAN RAKIĆ";
  char *enc = urlencode(str);
  printf("%s\n", enc);
  free(enc);
  return 0;
}

Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Sviđa mi se1
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme