Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35

Discussione: processo java bloccato

  1. #1
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568

    processo java bloccato

    ciao, non so che pesci prendere..
    ho una classe per la firma digitale dei file, utilizza una libreria acquistata da infocert, le bouncycastle e una dll esterna come driver..
    fin qui niente di che..

    su windows 7 non ho problemi mentre su windows 8 al termine della procedura di firma corretta il processo rimane appeso e non si chiude nemmeno forzando con System.exit()

    i produttori della libreria infocert mi garantiscono che non è un problema della loro libreria, quindi suppongo sia la dll che tiene lokkato qualcosa...

    secondo voi ho un modo per forzare il kill ?
    riporto il codice di esempio utilizzato (si lo so si dovrebbe utilizzare il finally per le close e il flush, questo esempio non è mio, è di infocert.. ma anche correggendo il risultato non cambia)

    ma magari qualcuno vedo qualcosa che mi sfugge o sa qualcosa del perchè su windows 8 si blocca e sul 7 per esempio no !!!

    codice:
    public class TestFirma {
                    /**
                     * @param args
                     * @throws Exception 
                     * @throws GeneralSecurityException 
                     */
                    public static void main(String[] args) throws GeneralSecurityException, Exception {
                                   // Configurazione Security Provider
                                   Security.addProvider(new BouncyCastleProvider());
                                   String fileToSign = "Test4.java";
                                   String signedFile = fileToSign + ".p7m";
                                   ISignMessage smsg = null;
                                   BufferedInputStream bis = null;
                                   FileOutputStream fos = null;
                                   // Impostazione con il driver delle "direttive" di firma
                                   CryptoDriver driver = new CryptoDriver();
                                   driver.setSignatureType(CryptoDriver.LEGAL_SIGNATURE);
                                   //driver.setSigningCN("FERRARI ANDREA");
                                   // Imposto il PIN ed il path della libreria per accedere al dispositivo hw
                                   CryptoEngine engine = new HardwareEngine("11111111", "C:/WINDOWS/system32/SissP11.dll",1);
                                   engine.open();
                                   smsg = SignMessageFactory.getInstance().createISignMessage(driver, engine);
                                   // Impostazione input e output stream
                                   bis = new BufferedInputStream(new FileInputStream(fileToSign));
                                   smsg.setInputStream(bis);
                                   File fo = new File(signedFile);
                                   fos = new FileOutputStream(fo);
                                   smsg.setOutputStream(fos);
                                   // Generazione del doc firmato
                                   smsg.encode(driver);
                                   fos.flush();
                                   bis.close();
                                   fos.close();
     
                    }
    }
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Non riesco a trovare alcuna documentazione in merito alle classi che stai usando (se hai qualche link...), quindi non so se può essere utile o meno...

    Quello che noto è che tu apri l'HardwareEngine:


    codice:
    CryptoEngine engine = new HardwareEngine("11111111", "C:/WINDOWS/system32/SissP11.dll",1);
    engine.open();

    ma non lo chiudi da nessuna parte (cioè, da nessuna parte vedo un engine.close()). Ripeto, non so se esista tale metodo close(), né se sia appropriato oppure no, proprio perchè non conosco queste classi e non ne ho trovato documentazione alcuna.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Non riesco a trovare alcuna documentazione in merito alle classi che stai usando (se hai qualche link...), quindi non so se può essere utile o meno...

    Quello che noto è che tu apri l'HardwareEngine:


    codice:
    CryptoEngine engine = new HardwareEngine("11111111", "C:/WINDOWS/system32/SissP11.dll",1);
    engine.open();

    ma non lo chiudi da nessuna parte (cioè, da nessuna parte vedo un engine.close()). Ripeto, non so se esista tale metodo close(), né se sia appropriato oppure no, proprio perchè non conosco queste classi e non ne ho trovato documentazione alcuna.


    Ciao.
    in effetti è una libreria terza acquistata da infocamere quindi documentazione online non si trova..
    il codice che ho postato è proprio l'esempio preso dalla loro documentazione..
    il metodo close è presente ma se lo utilizzo mi da errori, anche provando in punti diversi..
    ma che tu sappia c'è un modo diverso per finalizzare il processo java diverso da system.exit ?
    io non ne conosco
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    aspetta un secondo, fermati e vediamo con calma....mi dici proprio la lib che linki?? la fonte intendo.
    e poi vediamo di sistemare le cose.
    Altra domanda, alla fine di tutto, la firma è messa bene?
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Quote Originariamente inviata da valia Visualizza il messaggio
    aspetta un secondo, fermati e vediamo con calma....mi dici proprio la lib che linki?? la fonte intendo.
    la libreria è la jades fornita da infocert
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Quote Originariamente inviata da morphy79 Visualizza il messaggio
    la libreria è la jades fornita da infocert
    ok dammi una mezz'oretta

    mi dai proprio il link? perché sta jades non si trova...su cosa si basa?
    Ultima modifica di valia; 14-07-2014 a 15:20
    RTFM Read That F*** Manual!!!

  7. #7
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    no no il link non si può !! è una libreria a pagamento da millemila euro fornita dall'ente certificatore InfoCert !!!
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ho capito, ha una API sta libreria? degli esempi? su cosa si basa? Abbi pazienza, ma non posso sapere se sbagli qualcosa (e immagino cosa) se non ho le API (che te le forniscono anche le lib a pagamento)
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    purtroppo ho solo quel piccolo codice che ho postato.. quello è la loro "API" fornita insieme alla libreria..
    non hanno fornito altro..

    in che senso su cosa si basa ? questa non la so io
    intendi l'algoritmo di firma ? è lo SHA-256/RSA
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e lo so io, perché se mi parli di oggetti come
    CryptoDriver
    CryptoEngine
    ISignedMessage

    vorrei capire come istanziarli correttamente (e ci credo poco che non passi per delle factory), vorrei capire se ci sono delle opzioni da fornire (credo di si), vorrei capire perché passi un BufferedInputStream e non semplicemente un InputStream come FileInputStream.

    Vorrei capire come apporre la firma (cosa che adesso non fai perché hai tolto le info del firmatario).
    Insomma, così è davvero davvero troppo monco, lavoro per aziende che fanno sicurezza informatica e ti assicuro che un minimo di API bisogna fornirlo, specie se non siamo noi ad utilizzare il prodotto.

    Non ho capito perché parli di CryptoEngine per apporre una firma (crypto è un'altra cosa).

    Infine la finalizzazione dovrebbe farla l'engine, non l'utente che al max chiude gli stream che apre (quello sempre)

    passami la loro API via mex privato va
    Ultima modifica di valia; 14-07-2014 a 15:43
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.