Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Java i smart kartice

[es] :: Java :: Java i smart kartice

Strane: 1 2

[ Pregleda: 7995 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ivan.mojsilovic
CEO @ Yanado.com
Novi Sad

Član broj: 277882
Poruke: 780
*.dynamic.sbb.rs.

Sajt: www.yanado.com


+1042 Profil

icon Re: Java i smart kartice25.06.2012. u 09:37 - pre 143 meseci
Bice gusto :)

Mi nismo radili sa direktnim citanjem sa kartice (nemamo linux i mac korisnike kojima je potpis trebao) vec samo sa windows OS.

Koristili smo biblioteku iText za samo potpisivanje. Bikvalno nas aplet zatrazi listu sertifikata od windows-a, prikaze listu u combo box-u, user izabere sertifikat kojim zeli da potpise dokument, unese pin i to je to.

Ne mora da otvara PDF da bi ga potpisao.

E sad ako treba da cackas direkt na kartici mozes i to i kod nekih tipova karitca (java card) imas lep API i nije tesko, ali kod onih kod kojih to nemas imaces dosta zezanja.
 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
*.dynamic.isp.telekom.rs.

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice25.06.2012. u 18:16 - pre 143 meseci
Nasao sam ovo na netu mozda moze da pomogne deluje jako zanimljivo [url=http://www.springcard.com/blog/2010/java-pcsc-accessing-smartcards-from-a-web-page/][/url]
 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
*.dynamic.isp.telekom.rs.

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice26.06.2012. u 00:09 - pre 143 meseci
Po svemu sudeci sve ce se zavrsiti na potpisivanju na strani klijenta preko pdftcp bibiloteke koja umece mesta za potpis i kasnijim uploadom istog na server,ako neko zna kako bih mogao da potisujem na strani servera bio bih jako zahvalan ...
 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
62.108.117.*

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice26.06.2012. u 12:36 - pre 143 meseci
A jel ti dokument ostaje na serveru ili mora da se uploaduje kada ga potpisujes preko itext-a i appleta...Posto
je meni potrebno da jedan isti dokument potpise veci broj korisnika,naravno bez promena na samom dokumentu kako bi potpisi bili validni.Gledam da izbegnem upload fajla,kako se ne bi desilo da neko gazi fajl koji su drugi vec potpisali.Jedno od resenja koje razmartam je i da preko php tcpdf biblioteke generisem pdf koji ima mesta za
potpise i gde pdf sadrzi javascript koji bi iz browsera preko javascript-a i ajax-a probao da uploadujem na
klik u formi pdf-a,ako je to uopste moguce.


[Ovu poruku je menjao jovan1982 dana 26.06.2012. u 14:50 GMT+1]

[Ovu poruku je menjao jovan1982 dana 26.06.2012. u 14:50 GMT+1]
 
Odgovor na temu

ivan.mojsilovic
CEO @ Yanado.com
Novi Sad

Član broj: 277882
Poruke: 780
*.dynamic.sbb.rs.

Sajt: www.yanado.com


+1042 Profil

icon Re: Java i smart kartice26.06.2012. u 14:34 - pre 143 meseci
Evo kako to radi kod nas. Ulogujes se na aplikaciju, kliknis potpisi dokument, aplet se otvori, svuce dokument, potpise dokument, uploaduje ga nazad ili kao nov dokument ili doda novu verziju (imas checkbox da izaberes u apletu).

Dokument moze da potpise neogranicen broj korisnika (testirali do 20, mrzelo nas vise :) ).

Ako neko uzme pa promeni dokument jbg njegov problem, cim ga neko otvori kukace da nije validan tako da tu ne mozemo da uticemo. Onaj kome je to bitno da se ne desi, koristi workflow-ve gde ni ne moze da promeni dokument, vec samo da ga potpise.


 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
62.108.117.*

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice26.06.2012. u 15:03 - pre 143 meseci
Ok ,meni bi bas trebalo tako nesto .Jel mozes da ponudis neki kod ,uputstvo.Das neki tutorial.
 
Odgovor na temu

ivan.mojsilovic
CEO @ Yanado.com
Novi Sad

Član broj: 277882
Poruke: 780
*.dynamic.sbb.rs.

Sajt: www.yanado.com


+1042 Profil

icon Re: Java i smart kartice26.06.2012. u 15:07 - pre 143 meseci
A koji server koristis za to? Neki open soource DMS ili nesto svoje?
 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
62.108.117.*

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice26.06.2012. u 15:18 - pre 143 meseci
Apache ,php ,Bluehost, u pitanju je pdf dokument koji se potpisuje...Dokument se generise preko php-pear-a.U pitanju je php aplikacija koja za korisnike generise pdf dokumente-kompenzacione izjave koje moraju biti potpisane od strane korisnika.Nakon sto se svi usaglase snima se pdf na serveru ,tako da se od tog momenta novi ne generise nego se otvara snimljeni,ali koji sada mora da se potpisuje.Imam nekoliko resenja za to najgora sa download-om ,malo bolja sa otvaranjem pdf-a na php stranici sa pdf dugmetom koje poziva ajax-php i snima isti na serveru,bolja varijanta sa potpisanim apletom(kao kod vas),a najbolja-potpisivanje na serveru...
Sve u svemu,nesto svoje...

[Ovu poruku je menjao jovan1982 dana 26.06.2012. u 16:34 GMT+1]

[Ovu poruku je menjao jovan1982 dana 26.06.2012. u 17:14 GMT+1]

[Ovu poruku je menjao jovan1982 dana 26.06.2012. u 17:47 GMT+1]
 
Odgovor na temu

jovan1982
Jovo Krneta
ekonomista
Novi Banovci

Član broj: 290143
Poruke: 76
*.dynamic.isp.telekom.rs.

Sajt: www.bar-codes.org


+1 Profil

icon Re: Java i smart kartice07.07.2012. u 13:10 - pre 142 meseci
Zdravo!
Pisem desktop aplikaciju(koju cu po uspesnom zavrsetku da konvertujem u web aplet) za potpisivanje pdf-a koristeci itext biblioteku.

Evo koda
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javapotpisivanje7;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;
import com.itextpdf.text.pdf.security.PdfPKCS7;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.*;
import java.security.cert.CertificateException;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.HashMap;
import javax.security.cert.X509Certificate;
/**
*
* @author Jovo
*/
public class JavaPotpisivanje7 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, DocumentException, SignatureException, InvalidKeyException, NoSuchProviderException {

KeyStore ks = KeyStore.getInstance("Windows-MY");

ks.load(null, null) ;

//deo koji dodajem



//dodajem
Enumeration en = ks.aliases() ;

String alias = (String)ks.aliases().nextElement();
PrivateKey key = (PrivateKey)ks.getKey(alias, "password".toCharArray());
java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);

PdfReader reader = new PdfReader("Za Potpis.pdf");
FileOutputStream fout = new FileOutputStream("signed.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0',null,true);
PdfSignatureAppearance sap = stp.getSignatureAppearance();

sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
sap.setLayer2Text("Ovde ce da bude potpis.\n\nDate: some date");
Calendar cal = Calendar.getInstance();
PdfDictionary dic = new PdfDictionary();
dic.put(PdfName.FT, PdfName.SIG);
dic.put(PdfName.FILTER, new PdfName("SAFE.PPKSF"));
dic.put(PdfName.SUBFILTER, new PdfName("adbe.pkcs7.detached"));
dic.put(PdfName.M, new PdfDate(cal));
//dic.put(PdfName.NAME, new PdfString(PdfPKCS7.getSubjectFields((X509Certificate)chain[0]).getField("CN")));

sap.setCryptoDictionary(dic);
HashMap exc = new HashMap();
exc.put(PdfName.CONTENTS, new Integer(0x2502));
sap.preClose(exc);

//PdfPKCS7 pk7 = new PdfPKCS7(key, chain, null, "SHA1", null, false);

//PdfPKCS7 pk7 = new PdfPKCS7(key, chain, null, "SHA1", null, false);
//PdfPKCS7 pk7 = new PdfPKCS7(null, chain, null, "SHA1", true);
//PdfPKCS7 pk7 = new PdfPKCS7(key, chain, null, "SHA1", null, false);

//dodajem
//PdfPKCS7 pk7 = new PdfPKCS7(key, chain, alias, alias, true);

PdfPKCS7 pk7 = new PdfPKCS7(key, chain, "SHA1", null, false);

//dodajem
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
byte buf[] = new byte[8192];
int n;
InputStream inp = sap.getRangeStream();
while ((n = inp.read(buf)) > 0) {
messageDigest.update(buf, 0, n);
}
byte hash[] = messageDigest.digest();
byte sh[] = pk7.getAuthenticatedAttributeBytes(hash, cal, hash, null, true);
pk7.update(sh, 0, sh.length);

PdfDictionary dic2 = new PdfDictionary();
byte sg[] = pk7.getEncodedPKCS7(hash, cal);
byte out[] = new byte[0x2500 / 2];
System.arraycopy(sg, 0, out, 0, sg.length);
dic2.put(PdfName.CONTENTS, new PdfString(out).setHexWriting(true));
sap.close(dic2);
}
}

SVE U SVEMU,PO POKRETANJU APLIKACIJE KREIRA SE NOVO POLJE ALI SE NE POTPISE-POZOVE SE I KARTICA I TRAZI SE PIN BROJ.
dic.put(PdfName.NAME, new PdfString(PdfPKCS7.getSubjectFields((X509Certificate)chain[0]).getField("CN")));//OVAJ DEO MI PRAVI PROBLEME
PRETPOSTAVLJAM DA DEO KOJI PRAVI PROBLEME KOJI JE U OVOM MOMENTU POD // GDE BI TREBALO DA SE POZIVA SAMO POLJE
KADA SE SKINE KOMENTAR PRIJAVLJUJE SE GRESKA.
U DELU
KeyStore ks = KeyStore.getInstance("Windows-MY");

ks.load(null, null) ;
TAKODJE MOZE BITI PROBLEM...

AKO NEKO ZNA ZASTO I KAKO DA RESIM OVAJ PROBLEM BILO BI SUPER.
ZANIMA ME DA LI SAM NA DOBROM PUTU.


[Ovu poruku je menjao jovan1982 dana 07.07.2012. u 15:33 GMT+1]

[Ovu poruku je menjao jovan1982 dana 07.07.2012. u 16:15 GMT+1]

[Ovu poruku je menjao jovan1982 dana 07.07.2012. u 16:16 GMT+1]
 
Odgovor na temu

[es] :: Java :: Java i smart kartice

Strane: 1 2

[ Pregleda: 7995 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.