src/net/java/otr4j/OtrEngineHostImpl.java
changeset 810 0ff0059f2ec3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/net/java/otr4j/OtrEngineHostImpl.java	Sun Dec 05 18:43:51 2010 +0100
@@ -0,0 +1,68 @@
+package net.java.otr4j;
+
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+
+import net.java.otr4j.crypto.KeyAndSession;
+import net.java.otr4j.session.SessionID;
+
+import com.beem.project.beem.service.ChatAdapter;
+
+
+public class OtrEngineHostImpl implements OtrEngineHost{
+	
+	private ChatAdapter mChat;
+	private OtrPolicy policy;
+    public String lastInjectedMessage;
+    private ArrayList<KeyAndSession> keyring = new ArrayList<KeyAndSession>();
+    
+	public OtrEngineHostImpl(ChatAdapter chat, OtrPolicy policy){
+		mChat = chat;
+		this.policy = policy;
+	}
+	
+	@Override
+	public KeyPair getKeyPair(SessionID sessionID) {
+		 
+		for(int i = 0; i<keyring.size(); i++){
+			if(sessionID.equals(keyring.get(i).getSessionID())){
+				return keyring.get(i).getKeyPair();
+			}
+		}
+		
+		 KeyPairGenerator kg;
+         try {
+                 kg = KeyPairGenerator.getInstance("DSA");
+
+         } catch (NoSuchAlgorithmException e) {
+                 e.printStackTrace();
+                 return null;
+         }
+         KeyAndSession kp = new KeyAndSession(kg.genKeyPair(), sessionID);
+         keyring.add(kp);
+         return kp.getKeyPair();
+	}
+
+	@Override
+	public OtrPolicy getSessionPolicy(SessionID sessionID) {
+		return this.policy;
+	}
+
+	@Override
+	public void injectMessage(SessionID sessionID, String msg) {
+		mChat.sendMessage(msg);
+	}
+
+	@Override
+	public void showError(SessionID sessionID, String error) {
+	//	mChat.otrStatusDisplay.setText(""+error);		
+	}
+
+	@Override
+	public void showWarning(SessionID sessionID, String warning) {
+		//mChat.otrStatusDisplay.setText(""+warning);
+	}
+
+}