src/net/java/otr4j/OtrEngineHostImpl.java
changeset 810 0ff0059f2ec3
equal deleted inserted replaced
797:fbd3585af53e 810:0ff0059f2ec3
       
     1 package net.java.otr4j;
       
     2 
       
     3 import java.security.KeyPair;
       
     4 import java.security.KeyPairGenerator;
       
     5 import java.security.NoSuchAlgorithmException;
       
     6 import java.util.ArrayList;
       
     7 
       
     8 import net.java.otr4j.crypto.KeyAndSession;
       
     9 import net.java.otr4j.session.SessionID;
       
    10 
       
    11 import com.beem.project.beem.service.ChatAdapter;
       
    12 
       
    13 
       
    14 public class OtrEngineHostImpl implements OtrEngineHost{
       
    15 	
       
    16 	private ChatAdapter mChat;
       
    17 	private OtrPolicy policy;
       
    18     public String lastInjectedMessage;
       
    19     private ArrayList<KeyAndSession> keyring = new ArrayList<KeyAndSession>();
       
    20     
       
    21 	public OtrEngineHostImpl(ChatAdapter chat, OtrPolicy policy){
       
    22 		mChat = chat;
       
    23 		this.policy = policy;
       
    24 	}
       
    25 	
       
    26 	@Override
       
    27 	public KeyPair getKeyPair(SessionID sessionID) {
       
    28 		 
       
    29 		for(int i = 0; i<keyring.size(); i++){
       
    30 			if(sessionID.equals(keyring.get(i).getSessionID())){
       
    31 				return keyring.get(i).getKeyPair();
       
    32 			}
       
    33 		}
       
    34 		
       
    35 		 KeyPairGenerator kg;
       
    36          try {
       
    37                  kg = KeyPairGenerator.getInstance("DSA");
       
    38 
       
    39          } catch (NoSuchAlgorithmException e) {
       
    40                  e.printStackTrace();
       
    41                  return null;
       
    42          }
       
    43          KeyAndSession kp = new KeyAndSession(kg.genKeyPair(), sessionID);
       
    44          keyring.add(kp);
       
    45          return kp.getKeyPair();
       
    46 	}
       
    47 
       
    48 	@Override
       
    49 	public OtrPolicy getSessionPolicy(SessionID sessionID) {
       
    50 		return this.policy;
       
    51 	}
       
    52 
       
    53 	@Override
       
    54 	public void injectMessage(SessionID sessionID, String msg) {
       
    55 		mChat.sendMessage(msg);
       
    56 	}
       
    57 
       
    58 	@Override
       
    59 	public void showError(SessionID sessionID, String error) {
       
    60 	//	mChat.otrStatusDisplay.setText(""+error);		
       
    61 	}
       
    62 
       
    63 	@Override
       
    64 	public void showWarning(SessionID sessionID, String warning) {
       
    65 		//mChat.otrStatusDisplay.setText(""+warning);
       
    66 	}
       
    67 
       
    68 }