bump XEP-0474 to 0.4.0

Daniel Gultsch created

Change summary

conversations.doap                                                        | 2 
src/main/java/eu/siacs/conversations/crypto/sasl/DowngradeProtection.java | 6 
src/main/java/eu/siacs/conversations/crypto/sasl/ScramMechanism.java      | 8 
3 files changed, 8 insertions(+), 8 deletions(-)

Detailed changes

conversations.doap 🔗

@@ -494,7 +494,7 @@
         <xmpp:SupportedXep>
             <xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0474.html"/>
             <xmpp:status>complete</xmpp:status>
-            <xmpp:version>0.3.1</xmpp:version>
+            <xmpp:version>0.4.0</xmpp:version>
         </xmpp:SupportedXep>
     </implements>
     <implements>

src/main/java/eu/siacs/conversations/crypto/sasl/DowngradeProtection.java 🔗

@@ -9,8 +9,8 @@ import java.util.Collection;
 
 public class DowngradeProtection {
 
-    private static final char SEPARATOR = ',';
-    private static final char SEPARATOR_MECHANISM_AND_BINDING = '|';
+    private static final char SEPARATOR = 0x1E;
+    private static final char SEPARATOR_MECHANISM_AND_BINDING = 0x1F;
 
     public final ImmutableList<String> mechanisms;
     public final ImmutableList<String> channelBindings;
@@ -26,7 +26,7 @@ public class DowngradeProtection {
         this.channelBindings = null;
     }
 
-    public String asDString() {
+    public String asHString() {
         ensureSaslMechanismFormat(this.mechanisms);
         ensureNoSeparators(this.mechanisms);
         if (this.channelBindings != null) {

src/main/java/eu/siacs/conversations/crypto/sasl/ScramMechanism.java 🔗

@@ -183,7 +183,7 @@ public abstract class ScramMechanism extends SaslMechanism {
         final String i = attributes.get("i");
         final String s = attributes.get("s");
         final String nonce = attributes.get("r");
-        final String d = attributes.get("d");
+        final String h = attributes.get("h");
         if (Strings.isNullOrEmpty(s) || Strings.isNullOrEmpty(nonce) || Strings.isNullOrEmpty(i)) {
             throw new AuthenticationException("Missing attributes from server first message");
         }
@@ -205,15 +205,15 @@ public abstract class ScramMechanism extends SaslMechanism {
             throw new AuthenticationException("Invalid salt in server first message");
         }
 
-        if (d != null && this.downgradeProtection != null) {
+        if (h != null && this.downgradeProtection != null) {
             final String asSeenInFeatures;
             try {
-                asSeenInFeatures = downgradeProtection.asDString();
+                asSeenInFeatures = downgradeProtection.asHString();
             } catch (final SecurityException e) {
                 throw new AuthenticationException(e);
             }
             final var hashed = BaseEncoding.base64().encode(digest(asSeenInFeatures.getBytes()));
-            if (!hashed.equals(d)) {
+            if (!hashed.equals(h)) {
                 throw new AuthenticationException("Mismatch in SSDP");
             }
         }