aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorIngo Bauersachs <ingo@jitsi.org>2011-10-07 16:35:13 +0000
committerIngo Bauersachs <ingo@jitsi.org>2011-10-07 16:35:13 +0000
commit0adeff836e4c1142cd15fa4608dc26e9d54ef17c (patch)
tree90aaad55cbb427e03119f979733e7f856a6bddb8 /src/net
parenta9a134c2ea554f2483e332ab0d15b02853669613 (diff)
downloadjitsi-0adeff836e4c1142cd15fa4608dc26e9d54ef17c.zip
jitsi-0adeff836e4c1142cd15fa4608dc26e9d54ef17c.tar.gz
jitsi-0adeff836e4c1142cd15fa4608dc26e9d54ef17c.tar.bz2
Don't show the security padlock when the security controller requires secure signaling, but signaling is insecure
Diffstat (limited to 'src/net')
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java9
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java12
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/call/conference/BasicConferenceParticipantPanel.java18
-rw-r--r--src/net/java/sip/communicator/impl/neomedia/ZrtpControlImpl.java10
-rw-r--r--src/net/java/sip/communicator/impl/neomedia/transform/sdes/SDesControlImpl.java10
-rw-r--r--src/net/java/sip/communicator/impl/protocol/dict/ProtocolProviderServiceDictImpl.java10
-rw-r--r--src/net/java/sip/communicator/impl/protocol/gibberish/ProtocolProviderServiceGibberishImpl.java8
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/ProtocolProviderServiceIcqImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/irc/ProtocolProviderServiceIrcImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java10
-rw-r--r--src/net/java/sip/communicator/impl/protocol/mock/MockProvider.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/rss/ProtocolProviderServiceRssImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/ssh/ProtocolProviderServiceSSHImpl.java13
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java11
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/ProtocolProviderServiceZeroconfImpl.java11
-rw-r--r--src/net/java/sip/communicator/service/neomedia/SrtpControl.java9
-rw-r--r--src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java8
19 files changed, 194 insertions, 11 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java
index 38e6099..0af2990 100644
--- a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java
+++ b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java
@@ -267,8 +267,13 @@ public class CallPeerAdapter
renderer.securityOn(evt);
- NotificationManager.fireNotification(
- NotificationManager.CALL_SECURITY_ON);
+ if((evt.getSecurityController().requiresSecureSignalingTransport()
+ && peer.getProtocolProvider().isSignalingTransportSecure())
+ || !evt.getSecurityController().requiresSecureSignalingTransport())
+ {
+ NotificationManager.fireNotification(
+ NotificationManager.CALL_SECURITY_ON);
+ }
}
/**
diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java
index d7ca8ea..f3e7271 100644
--- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java
+++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java
@@ -1214,10 +1214,14 @@ public class OneToOneCallPeerPanel
*/
public void securityOn(CallPeerSecurityOnEvent evt)
{
- securityStatusLabel.setIcon(new ImageIcon(ImageLoader
- .getImage(ImageLoader.SECURE_BUTTON_ON)));
-
- securityImageID = ImageLoader.SECURE_BUTTON_ON;
+ if((evt.getSecurityController().requiresSecureSignalingTransport()
+ && callPeer.getProtocolProvider().isSignalingTransportSecure())
+ || !evt.getSecurityController().requiresSecureSignalingTransport())
+ {
+ securityImageID = ImageLoader.SECURE_BUTTON_ON;
+ securityStatusLabel.setIcon(new ImageIcon(ImageLoader
+ .getImage(securityImageID)));
+ }
//set common encryption properties
securityStatusLabel.setEncryptionCipher(evt.getCipher());
diff --git a/src/net/java/sip/communicator/impl/gui/main/call/conference/BasicConferenceParticipantPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/conference/BasicConferenceParticipantPanel.java
index 8c08fa8..0180bdd 100644
--- a/src/net/java/sip/communicator/impl/gui/main/call/conference/BasicConferenceParticipantPanel.java
+++ b/src/net/java/sip/communicator/impl/gui/main/call/conference/BasicConferenceParticipantPanel.java
@@ -138,6 +138,11 @@ public abstract class BasicConferenceParticipantPanel
private boolean isLocalPeer;
/**
+ * A reference to the container of this call member panel.
+ */
+ private CallRenderer renderer = null;
+
+ /**
* Creates an instance of <tt>ConferenceParticipantPanel</tt>.
*
* @param renderer the renderer for the call
@@ -145,6 +150,7 @@ public abstract class BasicConferenceParticipantPanel
public BasicConferenceParticipantPanel( CallRenderer renderer,
boolean isLocalPeer)
{
+ this.renderer = renderer;
this.isLocalPeer = isLocalPeer;
soundIndicator = new SoundLevelIndicator( renderer,
@@ -424,9 +430,15 @@ public abstract class BasicConferenceParticipantPanel
*/
public void securityOn(CallPeerSecurityOnEvent evt)
{
- securityImageID = ImageLoader.SECURE_ON_CONF_CALL;
- securityStatusLabel.setIcon(new ImageIcon(ImageLoader
- .getImage(securityImageID)));
+ if ((evt.getSecurityController().requiresSecureSignalingTransport()
+ && renderer.getCall().getProtocolProvider()
+ .isSignalingTransportSecure())
+ || !evt.getSecurityController().requiresSecureSignalingTransport())
+ {
+ securityImageID = ImageLoader.SECURE_ON_CONF_CALL;
+ securityStatusLabel.setIcon(new ImageIcon(ImageLoader
+ .getImage(securityImageID)));
+ }
securityStatusLabel.setEncryptionCipher(evt.getCipher());
switch (evt.getSessionType())
diff --git a/src/net/java/sip/communicator/impl/neomedia/ZrtpControlImpl.java b/src/net/java/sip/communicator/impl/neomedia/ZrtpControlImpl.java
index 70f6de6..da534a1 100644
--- a/src/net/java/sip/communicator/impl/neomedia/ZrtpControlImpl.java
+++ b/src/net/java/sip/communicator/impl/neomedia/ZrtpControlImpl.java
@@ -279,4 +279,14 @@ public class ZrtpControlImpl
{
return getTransformEngine().getUserCallback().isSecurityVerified();
}
+
+ /**
+ * Returns false, ZRTP exchanges is keys over the media path.
+ *
+ * @return false
+ */
+ public boolean requiresSecureSignalingTransport()
+ {
+ return false;
+ }
}
diff --git a/src/net/java/sip/communicator/impl/neomedia/transform/sdes/SDesControlImpl.java b/src/net/java/sip/communicator/impl/neomedia/transform/sdes/SDesControlImpl.java
index 90c2579..9f3a9fa 100644
--- a/src/net/java/sip/communicator/impl/neomedia/transform/sdes/SDesControlImpl.java
+++ b/src/net/java/sip/communicator/impl/neomedia/transform/sdes/SDesControlImpl.java
@@ -181,4 +181,14 @@ public class SDesControlImpl
public void setConnector(AbstractRTPConnector newValue)
{
}
+
+ /**
+ * Returns true, SDES always requires the secure transport of its keys.
+ *
+ * @return true
+ */
+ public boolean requiresSecureSignalingTransport()
+ {
+ return true;
+ }
}
diff --git a/src/net/java/sip/communicator/impl/protocol/dict/ProtocolProviderServiceDictImpl.java b/src/net/java/sip/communicator/impl/protocol/dict/ProtocolProviderServiceDictImpl.java
index 445783b..312822e 100644
--- a/src/net/java/sip/communicator/impl/protocol/dict/ProtocolProviderServiceDictImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/dict/ProtocolProviderServiceDictImpl.java
@@ -301,7 +301,15 @@ public class ProtocolProviderServiceDictImpl
RegistrationStateChangeEvent.REASON_USER_REQUEST,
null);
}
-
+
+ /**
+ * DICT has no support for secure transport.
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Close the connection to the server
*/
diff --git a/src/net/java/sip/communicator/impl/protocol/gibberish/ProtocolProviderServiceGibberishImpl.java b/src/net/java/sip/communicator/impl/protocol/gibberish/ProtocolProviderServiceGibberishImpl.java
index 56d26b9..a38339c 100644
--- a/src/net/java/sip/communicator/impl/protocol/gibberish/ProtocolProviderServiceGibberishImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/gibberish/ProtocolProviderServiceGibberishImpl.java
@@ -292,6 +292,14 @@ public class ProtocolProviderServiceGibberishImpl
}
/**
+ * Gibberish has no support for secure transport.
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
+ /**
* Returns the gibberish protocol icon.
* @return the gibberish protocol icon
*/
diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ProtocolProviderServiceIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ProtocolProviderServiceIcqImpl.java
index 2f3f1b5..bba63f2 100644
--- a/src/net/java/sip/communicator/impl/protocol/icq/ProtocolProviderServiceIcqImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/icq/ProtocolProviderServiceIcqImpl.java
@@ -428,6 +428,17 @@ public class ProtocolProviderServiceIcqImpl
aimConnection.disconnect(true);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the short name of the protocol that the implementation of this
* provider is based upon (like SIP, Jabber, ICQ/AIM, or others for
diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ProtocolProviderServiceIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/ProtocolProviderServiceIrcImpl.java
index a41dd9f..1041a1a 100644
--- a/src/net/java/sip/communicator/impl/protocol/irc/ProtocolProviderServiceIrcImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/irc/ProtocolProviderServiceIrcImpl.java
@@ -277,6 +277,17 @@ public class ProtocolProviderServiceIrcImpl
ircStack.disconnect();
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the icon for this protocol.
*
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
index 2842e3c..8659de6 100644
--- a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
@@ -446,6 +446,16 @@ public class ProtocolProviderServiceJabberImpl
}
/**
+ * Indicates if the XMPP transport channel is using a TLS secured socket.
+ *
+ * @return True when TLS is used, false otherwise.
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return connection != null && connection.isUsingTLS();
+ }
+
+ /**
* Connects and logins to the server
* @param authority SecurityAuthority
* @param reasonCode the authentication reason code. Indicates the reason of
diff --git a/src/net/java/sip/communicator/impl/protocol/mock/MockProvider.java b/src/net/java/sip/communicator/impl/protocol/mock/MockProvider.java
index d46bce8..31e8ada 100644
--- a/src/net/java/sip/communicator/impl/protocol/mock/MockProvider.java
+++ b/src/net/java/sip/communicator/impl/protocol/mock/MockProvider.java
@@ -200,6 +200,17 @@ public class MockProvider
{
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the AccountID that uniquely identifies the account represented by
* this instance of the ProtocolProviderService.
diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
index 0803dfb..c6cef33 100644
--- a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
@@ -240,6 +240,17 @@ public class ProtocolProviderServiceMsnImpl
unregister(true);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Unregister and fire the event if requested
* @param fireEvent boolean
diff --git a/src/net/java/sip/communicator/impl/protocol/rss/ProtocolProviderServiceRssImpl.java b/src/net/java/sip/communicator/impl/protocol/rss/ProtocolProviderServiceRssImpl.java
index 50e9cc3..d4a73e2 100644
--- a/src/net/java/sip/communicator/impl/protocol/rss/ProtocolProviderServiceRssImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/rss/ProtocolProviderServiceRssImpl.java
@@ -231,6 +231,17 @@ public class ProtocolProviderServiceRssImpl
, null);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the rss protocol icon.
* @return the rss protocol icon
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
index b6d0f79..743fb5a 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
@@ -1922,6 +1922,17 @@ public class ProtocolProviderServiceSipImpl
}
/**
+ * Indicates if the SIP transport channel is using a TLS secured socket.
+ *
+ * @return True when TLS is used the SIP transport protocol, false
+ * otherwise or when no proxy is being used.
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return ListeningPoint.TLS.equalsIgnoreCase(outboundProxyTransport);
+ }
+
+ /**
* Extracts all properties concerning the usage of an outbound proxy for
* this account.
* @param accountID the account whose outbound proxy we are currently
diff --git a/src/net/java/sip/communicator/impl/protocol/ssh/ProtocolProviderServiceSSHImpl.java b/src/net/java/sip/communicator/impl/protocol/ssh/ProtocolProviderServiceSSHImpl.java
index eb90dc2..9c9c0b9 100644
--- a/src/net/java/sip/communicator/impl/protocol/ssh/ProtocolProviderServiceSSHImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/ssh/ProtocolProviderServiceSSHImpl.java
@@ -619,7 +619,18 @@ public class ProtocolProviderServiceSSHImpl
, RegistrationStateChangeEvent.REASON_USER_REQUEST
, null);
}
-
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the ssh protocol icon.
* @return the ssh protocol icon
diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
index 02e1958..679fcb8 100644
--- a/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
@@ -324,6 +324,17 @@ public class ProtocolProviderServiceYahooImpl
null);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the short name of the protocol that the implementation of this
* provider is based upon (like SIP, Msn, ICQ/AIM, or others for
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/ProtocolProviderServiceZeroconfImpl.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/ProtocolProviderServiceZeroconfImpl.java
index 120a6bd..2aef1f1 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/ProtocolProviderServiceZeroconfImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/ProtocolProviderServiceZeroconfImpl.java
@@ -258,6 +258,17 @@ public class ProtocolProviderServiceZeroconfImpl
, null);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.java.sip.communicator.service.protocol.ProtocolProviderService#
+ * isSignallingTransportSecure()
+ */
+ public boolean isSignalingTransportSecure()
+ {
+ return false;
+ }
+
/**
* Returns the zeroconf protocol icon.
* @return the zeroconf protocol icon
diff --git a/src/net/java/sip/communicator/service/neomedia/SrtpControl.java b/src/net/java/sip/communicator/service/neomedia/SrtpControl.java
index 4f940f6..18cb7cd 100644
--- a/src/net/java/sip/communicator/service/neomedia/SrtpControl.java
+++ b/src/net/java/sip/communicator/service/neomedia/SrtpControl.java
@@ -75,4 +75,13 @@ public interface SrtpControl
* SRTP engine
*/
public void setConnector(AbstractRTPConnector newValue);
+
+ /**
+ * Indicates if the key exchange method is dependent on secure transport of
+ * the signaling channel.
+ *
+ * @return True when secure signaling is required to make the encryption
+ * secure, false otherwise.
+ */
+ public boolean requiresSecureSignalingTransport();
}
diff --git a/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java b/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java
index 9228144..487afdd 100644
--- a/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java
+++ b/src/net/java/sip/communicator/service/protocol/ProtocolProviderService.java
@@ -179,4 +179,12 @@ public interface ProtocolProviderService
* @return the id of the account represented by this provider.
*/
public AccountID getAccountID();
+
+ /**
+ * Indicate if the signaling transport of this protocol instance uses a
+ * secure (e.g. via TLS) connection.
+ *
+ * @return True when the connection is secured, false otherwise.
+ */
+ public boolean isSignalingTransportSecure();
}