[Java lista] RSA kulcsos kódolás

Olaj Péter polaj at iqs.hu
2006. Okt. 19., Cs, 14:12:43 CEST


Köszönöm szépen!
> package hu.remedios.mpp.common;
>
> import java.net.*;
> import javax.net.ssl.*;
> import java.security.*;
> import java.io.*;
>
> /**
>  * @author andris
>  *
>  */
> public class LightClient {
>     private boolean httpsMode;
>
>     private String keystoreFileName;
>
>     private HttpsURLConnection httpsconn;
>    
>     private HttpURLConnection httpconn;
>
>     private String urlstr;
>
>     private PrintWriter pout;
>    
>     private int lastResponseCode;
>    
>     private String lastResponseContent;
>
>     private String keyStorePassword;
>
>     private String truststoreFileName;
>
>     private String trustStorePassword;
>
>
>     public LightClient() {
>     }
>     public LightClient(String keystoreFileName, String 
> keyStorePassword, String truststoreFileName, String trustStorePassword) {
>         init(keystoreFileName, keyStorePassword, truststoreFileName, 
> trustStorePassword);
>     }       
>
>     public void init (String keystoreFileName, String 
> keyStorePassword, String truststoreFileName, String trustStorePassword) {
>         this.keystoreFileName = keystoreFileName;
>         this.keyStorePassword = keyStorePassword;
>         this.truststoreFileName = truststoreFileName;
>         this.trustStorePassword = trustStorePassword;
>     }
>    
>     private void open(String method, String urlstr) {
>         try {
>             this.urlstr = urlstr;
>             httpsMode = urlstr.startsWith("https://");
>             HostnameVerifier hv = new HostnameVerifier() {
>                 public boolean verify(String urlHostName, SSLSession 
> session) {
>                     System.out.println("Warning: URL Host: 
> "+urlHostName+" vs. "+session.getPeerHost());
>                     return true;
>                 }
>             };
>              
>             HttpsURLConnection.setDefaultHostnameVerifier(hv);        
>        
>             URL url = new URL(urlstr);
>            
>             if(httpsMode) {
>                 System.setProperty("java.protocol.handler.pkgs 
> ","javax.net.ssl");           
>                 
> Security.setProperty("java.protocol.handler.pkgs","javax.net.ssl");
>                 System.setProperty("javax.net.ssl.keyStore", 
> keystoreFileName);
> System.out.println("keystore file: " + keystoreFileName);               
>                 System.setProperty("javax.net.ssl.keyStorePassword", 
> keyStorePassword);
>                 System.setProperty ("javax.net.ssl.trustStore", 
> truststoreFileName);
>                 System.setProperty("javax.net.ssl.trustStorePassword", 
> trustStorePassword);
>                 httpsconn = (HttpsURLConnection) url.openConnection ();
>                 httpconn = (HttpURLConnection)httpsconn;
>                 // read results...
>             } else {
>                 httpconn = (HttpURLConnection) url.openConnection();
>             }
>
>             httpconn.setRequestMethod(method);
>             httpconn.setDoInput(true);
>             if(method.equalsIgnoreCase("POST")) {
>                 httpconn.setDoOutput(true);
>                 pout = new PrintWriter(new OutputStreamWriter(httpconn
>                         .getOutputStream()), true);   
>             }
>
>        
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
>
>     private void close() {
>         if(pout != null) pout.close();
>         httpconn.disconnect();
>     }
>
>     private String receiveResponse() throws IOException {
>         String res = "";
>         String line = "";
>
>         lastResponseCode = httpconn.getResponseCode();
>         System.out.println("ResponseCode:" + lastResponseCode);
>         if (lastResponseCode < 500/*HttpURLConnection.HTTP_OK*/)
>             System.out.println("Posted ok!");
>         else {
>             System.out.println("Bad post...\n");
>             throw new IOException();
>         }
>         InputStream s1 = httpconn.getInputStream ();
>         BufferedReader in = new BufferedReader(new InputStreamReader(s1));
>         while ((line = in.readLine()) != null)
>             res += line;
>         lastResponseContent = res;
>
>         return res;
>
>     }
>
>     /**
>      * @param xml
>      * @throws IOException
>      */
>     public void get(String urlstr) throws IOException {
>         System.out.println("GET " + urlstr);
>         open("GET", urlstr);
>         System.out.println(receiveResponse());
>         close();
>     }   
>     public void post(String urlstr, String xml) throws IOException {
>         System.out.println("POST " + urlstr);
>         open("POST", urlstr);
>         pout.print(xml);
>         pout.flush();
>         System.out.println("response:" + receiveResponse());
>         close();
>     }
>     public int getLastResponseCode() {
>         return lastResponseCode;
>     }
>     public String getLastResponseContent() {
>         return lastResponseContent;
>     }
>    
>     public static void main(String[] args) {
>         try {
>             LightClient lc = new LightClient(args[2], args[3], 
> args[4], args[5]);
>             try {
>                 if(args[0].equalsIgnoreCase("POST")) {
>                     lc.post(args[1], "Hello World!");                   
>                 } else if(args[0].equalsIgnoreCase("GET")) {
>                     lc.get(args[1]);                   
>                 } else throw new ArrayIndexOutOfBoundsException();
>                 System.out.println("Code:" + lc.getLastResponseCode());
>                 System.out.println("Content:" + 
> lc.getLastResponseContent());
>             } catch (IOException e) {
>                 // TODO Auto-generated catch block
>                 e.printStackTrace();
>             }
>
>             System.out.println("Content:" + lc.getLastResponseContent());
>            
>         } catch (ArrayIndexOutOfBoundsException e) {
>             System.out.println("java LightClient <POST|GET> 
> <keystoreFileName> <keyStorePassword> <truststoreFileName> 
> <trustStorePassword>");
>         }
>     }
>     /**
>      * @return Returns the urlstr.
>      */
>     public String getUrlstr() {
>         return urlstr;
>     }
>     /**
>      * @param urlstr The urlstr to set.
>      */
>     public void setUrlstr(String urlstr) {
>         this.urlstr = urlstr;
>     }
> }
>
> On 10/19/06, *Olaj Péter* <polaj at iqs.hu <mailto:polaj at iqs.hu>> wrote:
>
>     Sziasztok!
>
>     Egy Java progiból adatokat kellene küldeni és fogadni egy külső
>     rendszertől kódolva. A külső rendszer (nem Java, PHP) üzemeltetői
>     adják
>     meg a .cert, .key kulcsokat és a passpharse-t. Kaptam egy PHP progit,
>     amiben működik a dolog a kulcsokkal, szépen kódol és dekódol,
>     viszont a
>     Javas megvalósítással elakadtam. Tud valaki küldeni esetleg egy működő
>     kódrészletet? Vagy valami példát, linket, stb?
>
>     Köszönettel
>     Olaj Péter
>     _______________________________________________
>     Javalist mailing list
>     Javalist at javagrund.hu <mailto:Javalist at javagrund.hu>
>     http://javagrund.hu/mailman/listinfo/javalist
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>   


-- 
Üdvözlettel,
Olaj Péter

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20061019/034ffbb9/attachment.html 


További információk a(z) Javalist levelezőlistáról