diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/AuthChallengeSerializer.java')
-rw-r--r-- | src/com/isode/stroke/serializer/AuthChallengeSerializer.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/AuthChallengeSerializer.java b/src/com/isode/stroke/serializer/AuthChallengeSerializer.java new file mode 100644 index 0000000..eee392e --- /dev/null +++ b/src/com/isode/stroke/serializer/AuthChallengeSerializer.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2010, Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2010, Remko Tron¨on. + * All rights reserved. + */ + +package com.isode.stroke.serializer; + +import com.isode.stroke.base.ByteArray; +import com.isode.stroke.elements.AuthChallenge; +import com.isode.stroke.elements.Element; +import com.isode.stroke.stringcodecs.Base64; + +class AuthChallengeSerializer extends GenericElementSerializer<AuthChallenge> { + + public AuthChallengeSerializer() { + super(AuthChallenge.class); + } + + public String serialize(Element element) { + AuthChallenge authChallenge = (AuthChallenge)element; + String value = ""; + ByteArray message = authChallenge.getValue(); + if (message != null) { + if (message.isEmpty()) { + value = "="; + } + else { + value = Base64.encode(message); + } + } + return "<challenge xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">" + value + "</challenge>"; + } + +} |