[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34118 - in gnunet-java/src: main/java/org/gnunet/util test
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34118 - in gnunet-java/src: main/java/org/gnunet/util test/java/org/gnunet/util |
Date: |
Wed, 6 Aug 2014 21:41:51 +0200 |
Author: dold
Date: 2014-08-06 21:41:51 +0200 (Wed, 06 Aug 2014)
New Revision: 34118
Modified:
gnunet-java/src/main/java/org/gnunet/util/Strings.java
gnunet-java/src/test/java/org/gnunet/util/PeerIdentityTest.java
Log:
fix string en-/decoding
Modified: gnunet-java/src/main/java/org/gnunet/util/Strings.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Strings.java 2014-08-06
18:38:27 UTC (rev 34117)
+++ gnunet-java/src/main/java/org/gnunet/util/Strings.java 2014-08-06
19:41:51 UTC (rev 34118)
@@ -24,7 +24,7 @@
* Common functions on Strings, specific to gnunet-java
*/
public class Strings {
- private static final String encTable = "0123456789ABCDEFGHIJKLMNOPQRSTUV";
+ private static final String encTable = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
/**
* Convert binary data to ASCII encoding. The ASCII encoding is rather
@@ -170,12 +170,46 @@
}
private static int getValue(char a) {
- if ((a >= '0') && (a <= '9')) {
- return a - '0';
+ int dec;
+
+ switch (a)
+ {
+ case 'O':
+ case 'o':
+ a = '0';
+ break;
+ case 'i':
+ case 'I':
+ case 'l':
+ case 'L':
+ a = '1';
+ break;
+ /* also consider U to be V */
+ case 'u':
+ case 'U':
+ a = 'V';
+ break;
+ default:
+ break;
+ }
+ if ((a >= '0') && (a <= '9'))
+ return a - '0';
+ if ((a >= 'a') && (a <= 'z'))
+ a = Character.toUpperCase((char) a);
+ /* return (a - 'a' + 10); */
+ dec = 0;
+ if ((a >= 'A') && (a <= 'Z'))
+ {
+ if ('I' < a)
+ dec++;
+ if ('L' < a)
+ dec++;
+ if ('O' < a)
+ dec++;
+ if ('U' < a)
+ dec++;
+ return (a - 'A' + 10 - dec);
}
- if ((a >= 'A') && (a <= 'V')) {
- return (a - 'A' + 10);
- }
return -1;
}
@@ -183,3 +217,4 @@
return stringToData(s, getDecodedDataLength(s.length()));
}
}
+
Modified: gnunet-java/src/test/java/org/gnunet/util/PeerIdentityTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/util/PeerIdentityTest.java
2014-08-06 18:38:27 UTC (rev 34117)
+++ gnunet-java/src/test/java/org/gnunet/util/PeerIdentityTest.java
2014-08-06 19:41:51 UTC (rev 34118)
@@ -19,5 +19,14 @@
Assert.assertArrayEquals(peerIdentity.data, peerIdentity2.data);
}
+ /**
+ * Test that new encoding works (test string from Ilya Migal)
+ */
+ @Test
+ public void test_ilya() {
+ PeerIdentity peerIdentity =
PeerIdentity.fromString("NF0QZQSD5JEAXTK701H84YP0D2K0ZRM7GYA7MN2RFBJDJPVVYM90");
+ Assert.assertNotNull(peerIdentity);
+ }
+
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34118 - in gnunet-java/src: main/java/org/gnunet/util test/java/org/gnunet/util,
gnunet <=