summaryrefslogtreecommitdiffstats
path: root/support/src
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2014-12-15 16:56:09 +0000
committerNarayan Kamath <narayan@google.com>2014-12-16 14:50:13 +0000
commit11f82d1a94ebe1becb7e7d09dd3343ce117bdd46 (patch)
tree18f28c7f703602b0b4359eb3f71854a68b308243 /support/src
parentf696c24c1bce78c80bdab80c53089eabaa5f814f (diff)
downloadlibcore-11f82d1a94ebe1becb7e7d09dd3343ce117bdd46.zip
libcore-11f82d1a94ebe1becb7e7d09dd3343ce117bdd46.tar.gz
libcore-11f82d1a94ebe1becb7e7d09dd3343ce117bdd46.tar.bz2
Repurpose "HexEncoding" for internal users.
Frameworks callers either roll their own or use an internal apache class. Given that apache is going away, we need to provide them with an alternative. bug: 18027885 Change-Id: Iec01cba9f3d2027828457c0b450eac0dd08fcaf6
Diffstat (limited to 'support/src')
-rw-r--r--support/src/test/java/libcore/tlswire/handshake/ClientHello.java6
-rw-r--r--support/src/test/java/libcore/tlswire/handshake/HelloExtension.java2
-rw-r--r--support/src/test/java/libcore/tlswire/util/HexEncoding.java93
3 files changed, 4 insertions, 97 deletions
diff --git a/support/src/test/java/libcore/tlswire/handshake/ClientHello.java b/support/src/test/java/libcore/tlswire/handshake/ClientHello.java
index 8d25cd5..ec88662 100644
--- a/support/src/test/java/libcore/tlswire/handshake/ClientHello.java
+++ b/support/src/test/java/libcore/tlswire/handshake/ClientHello.java
@@ -17,8 +17,8 @@
package libcore.tlswire.handshake;
import libcore.tlswire.util.TlsProtocolVersion;
-import libcore.tlswire.util.HexEncoding;
import libcore.tlswire.util.IoUtils;
+import libcore.util.HexEncoding;
import java.io.ByteArrayInputStream;
import java.io.DataInput;
import java.io.DataInputStream;
@@ -98,8 +98,8 @@ public class ClientHello extends HandshakeMessage {
@Override
public String toString() {
return "ClientHello{client version: " + clientVersion
- + ", random: " + HexEncoding.encode(random)
- + ", sessionId: " + HexEncoding.encode(sessionId)
+ + ", random: " + new String(HexEncoding.encode(random))
+ + ", sessionId: " + new String(HexEncoding.encode(sessionId))
+ ", cipher suites: " + cipherSuites
+ ", compression methods: " + compressionMethods
+ ((extensions != null) ? (", extensions: " + String.valueOf(extensions)) : "")
diff --git a/support/src/test/java/libcore/tlswire/handshake/HelloExtension.java b/support/src/test/java/libcore/tlswire/handshake/HelloExtension.java
index e3361b9..5741072 100644
--- a/support/src/test/java/libcore/tlswire/handshake/HelloExtension.java
+++ b/support/src/test/java/libcore/tlswire/handshake/HelloExtension.java
@@ -16,8 +16,8 @@
package libcore.tlswire.handshake;
-import libcore.tlswire.util.HexEncoding;
import libcore.tlswire.util.IoUtils;
+import libcore.util.HexEncoding;
import java.io.DataInput;
import java.io.IOException;
import java.util.HashMap;
diff --git a/support/src/test/java/libcore/tlswire/util/HexEncoding.java b/support/src/test/java/libcore/tlswire/util/HexEncoding.java
deleted file mode 100644
index 2061fcc..0000000
--- a/support/src/test/java/libcore/tlswire/util/HexEncoding.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package libcore.tlswire.util;
-
-import java.nio.ByteBuffer;
-
-/**
- * Hexadecimal encoding where each byte is represented by two hexadecimal digits.
- */
-public class HexEncoding {
-
- /** Hidden constructor to prevent instantiation. */
- private HexEncoding() {}
-
- private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray();
-
- /**
- * Encodes the provided data as a hexadecimal string.
- */
- public static String encode(byte[] data) {
- return encode(data, 0, data.length);
- }
-
- /**
- * Encodes the provided data as a hexadecimal string.
- */
- public static String encode(byte[] data, int offset, int len) {
- StringBuilder result = new StringBuilder(len * 2);
- for (int i = 0; i < len; i++) {
- byte b = data[offset + i];
- result.append(HEX_DIGITS[(b >>> 4) & 0x0f]);
- result.append(HEX_DIGITS[b & 0x0f]);
- }
- return result.toString();
- }
-
- /**
- * Encodes the provided data as a hexadecimal string.
- */
- public static String encode(ByteBuffer buf) {
- return encode(buf.array(), buf.arrayOffset() + buf.position(), buf.remaining());
- }
-
- /**
- * Decodes the provided hexadecimal string into an array of bytes.
- */
- public static byte[] decode(String encoded) {
- // IMPLEMENTATION NOTE: Special care is taken to permit odd number of hexadecimal digits.
- int resultLengthBytes = (encoded.length() + 1) / 2;
- byte[] result = new byte[resultLengthBytes];
- int resultOffset = 0;
- int encodedCharOffset = 0;
- if ((encoded.length() % 2) != 0) {
- // Odd number of digits -- the first digit is the lower 4 bits of the first result byte.
- result[resultOffset++] =
- (byte) getHexadecimalDigitValue(encoded.charAt(encodedCharOffset));
- encodedCharOffset++;
- }
- for (int len = encoded.length(); encodedCharOffset < len; encodedCharOffset += 2) {
- result[resultOffset++] = (byte) (
- (getHexadecimalDigitValue(encoded.charAt(encodedCharOffset)) << 4)
- | getHexadecimalDigitValue(encoded.charAt(encodedCharOffset + 1)));
- }
- return result;
- }
-
- private static int getHexadecimalDigitValue(char c) {
- if ((c >= 'a') && (c <= 'f')) {
- return (c - 'a') + 0x0a;
- } else if ((c >= 'A') && (c <= 'F')) {
- return (c - 'A') + 0x0a;
- } else if ((c >= '0') && (c <= '9')) {
- return c - '0';
- } else {
- throw new IllegalArgumentException("Invalid hexadecimal digit at position : '" + c
- + "' (0x" + Integer.toHexString(c) + ")");
- }
- }
-}