Add zrtp-hash attributes to the SDP media attributes. Each media (RTP session) has its own

hash attribute because each session uses own keys to encrypt via SRTP. The hashes
may be used according to the ZRTP spec, refer to chaps 8 and 10.
cusax-fix
Werner Dittmann 17 years ago
parent 5578505c55
commit c81c3e5ac5

@ -1613,6 +1613,17 @@ private Vector<MediaDescription> createMediaDescriptions(
onHold |= ON_HOLD_REMOTELY;
}
setAttributeOnHold(am, onHold);
// check if ZRTP engine is used and set SDP attribute
TransformConnector transConnector = this.transConnectors
.get(audioRtpManager);
if (transConnector != null) {
TransformEngine engine = transConnector.getEngine();
if (engine instanceof ZRTPTransformEngine) {
ZRTPTransformEngine ze = (ZRTPTransformEngine) engine;
am.setAttribute("zrtp-hash", ze.getHelloHash());
}
}
mediaDescs.add(am);
}
//--------Video media description
@ -1648,6 +1659,17 @@ private Vector<MediaDescription> createMediaDescriptions(
onHold |= ON_HOLD_REMOTELY;
}
setAttributeOnHold(vm, onHold);
// check if ZRTP engine is used and set SDP attribute
TransformConnector transConnector = this.transConnectors
.get(videoRtpManager);
if (transConnector != null) {
TransformEngine engine = transConnector.getEngine();
if (engine instanceof ZRTPTransformEngine) {
ZRTPTransformEngine ze = (ZRTPTransformEngine) engine;
vm.setAttribute("zrtp-hash", ze.getHelloHash());
}
}
mediaDescs.add(vm);
}
@ -1810,7 +1832,9 @@ private Hashtable<String, List<String>> extractMediaEncodings(
{
MediaDescription mediaDescription
= descriptionsIter.next();
Media media = mediaDescription.getMedia();
Vector<String> mediaFormats = null;
String mediaType = null;
try
@ -1826,7 +1850,6 @@ private Hashtable<String, List<String>> extractMediaEncodings(
continue;
}
if(mediaFormats.size() > 0)
{
List<String> jmfEncodings =
@ -2080,10 +2103,6 @@ else if (rtpManager.equals(videoRtpManager)) {
callback.setType(SecurityGUIEventZrtp.VIDEO);
}
// ZRTP engine initialization
// TODO: 1. must query/randomize/find a method for the zid file
// name
// 2. must define an exception for initialization failure
ZRTPTransformEngine engine
= (ZRTPTransformEngine)transConnector.getEngine();
engine.setUserCallback(callback);

Loading…
Cancel
Save