Visualizzazione dei risultati da 1 a 2 su 2

Discussione: bouncycastle e policy

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

    bouncycastle e policy

    ho una classe che dovrebbe criptare un file..
    problema è che quando la eseguo mi da un errore..
    cercando in rete ho scoperto che è dovuto al file di policy contenuto nel jar..
    ho un modo per aggirarlo ?
    contando che il programma dovrà essere intallato sui clienti, non posso interagire sulla jre di ciascuno..
    non esiste un modo per specificare qualcosa da progetto ?

    codice:
    
    	import java.io.*;
    	import java.util.*;
    	import java.security.*;
    import java.security.cert.CertificateFactory;
    	import java.security.cert.X509Certificate;
    
    	import org.bouncycastle.cms.CMSEnvelopedData;
    import org.bouncycastle.cms.CMSException;
    	import org.bouncycastle.cms.CMSProcessableByteArray;
    	import org.bouncycastle.cms.CMSEnvelopedDataGenerator;
    import org.bouncycastle.cms.KeyTransRecipientInformation;
    import org.bouncycastle.jce.provider.BouncyCastleProvider;
    
    
    public class Test4 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    
    
    			String pathFile = "prove/x509NOPPR8002_20090401.zip.p7m";
    			String pathCert = "prove/concentratore.cer";
    			
    
    			 //Plug the Provider into the JCA/JCE
    			  Security.addProvider(new BouncyCastleProvider());
    
    			  FileInputStream freader = null;
    			  File f = null;
    			  X509Certificate cert = null;
    
    			//------  Get the content data from file -------------
    			  f = new File(pathFile) ;
    			  int sizecontent = ((int) f.length());
    			  byte[] contentbytes = new byte[sizecontent];
    
    			  try {
    			    freader = new FileInputStream(f);
    			    System.out.println("\nContent Bytes: " + freader.read(contentbytes, 0, sizecontent));
    			    freader.close();
    			   }
    			  catch(IOException ioe) {
    				System.out.println(ioe.toString());
    				return;
    				}
    
    			//------  Get recipient certificate from file -------------
    
    			 try{
    			  InputStream inStream = new FileInputStream(pathCert);
    			  CertificateFactory cf = CertificateFactory.getInstance("X509");
    			  cert = (X509Certificate)cf.generateCertificate(inStream);
    			  inStream.close();
    			  
    			  String[] infos_emetteur = cert.getIssuerDN().getName().split("(=|, )", -1);
    			  String[] infos_titulaire = cert.getSubjectDN().getName().split("(=|, )", -1);
    
    			  System.out.println("CommonName : " + infos_titulaire[3]);
    			  System.out.println("EmailAdresse : " + infos_titulaire[1] + "\n");
    
    			  for (int i = 0; i < infos_emetteur.length; i += 2)
    			  {
    			  	if (infos_emetteur[i].equals("C"))
    			  		System.out.println("CountryName : " + infos_emetteur[i + 1]);
    			  	if (infos_emetteur[i].equals("O"))
    			  		System.out.println("OrganizationName : " + infos_emetteur[i + 1]);
    			  	if (infos_emetteur[i].equals("CN"))
    			  		System.out.println("CommonName : " + infos_emetteur[i + 1]);
    			  }
    
    			  System.out.println("valido");
    			  System.out.println("dal : " + cert.getNotBefore());
    			  System.out.println("al : " + cert.getNotAfter());
    			  
    			 }
    			 catch(Exception exc){
    			  System.out.println("Couldn't instantiate X.509 certificate");
    			  return;
    			 }
    
    
    			// --- Use Bouncy Castle provider to create enveloped message ---
    			 String algorithm = CMSEnvelopedDataGenerator.DES_EDE3_CBC;
    			 int keysize = 192;  // bits
    			 CMSEnvelopedDataGenerator  fact = new CMSEnvelopedDataGenerator();
    			 fact.addKeyTransRecipient((X509Certificate)cert);
    			 CMSProcessableByteArray content = new CMSProcessableByteArray(contentbytes);
    			 try{
    			  CMSEnvelopedData  envdata = fact.generate(content, algorithm, keysize, "BC");
    
    			  byte[] enveloped = envdata.getEncoded() ;
    			  System.out.println("Got encoded pkcs7 bytes " + enveloped.length + " bytes") ;
    			   FileOutputStream envfos = new FileOutputStream("BCenveloped.p7");
    			   envfos.write(enveloped);
    			   envfos.close();
    			 }
    			 catch(CMSException ex){
    				 System.out.println(ex.getUnderlyingException());
    				 ex.printStackTrace();
    			 } catch (IOException e) {
    				 System.out.println("COuldn't generate enveloped signature") ;
    			} catch (NoSuchAlgorithmException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (NoSuchProviderException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    
    		
    	}
    
    }
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ahi ahi... suppongo nessuno..
    allora cambio la domanda..
    credo che realizzerò un installer che va a sovrascrivere i due file di policy..
    unica cosa : è legalmente possibile ?
    è per una applicazione commerciale.. un motivo per cui le policy sono limitate ci sarà.. ?
    sono accette anche altre soluzioni ovviamente
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

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.