diff --git a/pom.xml b/pom.xml
index 73c02242..70f985e5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,9 +50,8 @@
1.3
5.7.2
1.10.19
- 0.11.1
+ 0.12.2
6.11
- 1.68
1.16.0
1.8
1.8
@@ -81,12 +80,6 @@
smbj
${thirdparty.smbj.version}
-
- org.bouncycastle
- bcprov-jdk15on
- ${thirdparty.bouncycastle.version}
-
-
diff --git a/src/main/java/com/rapid7/client/dcerpc/dto/ContextHandle.java b/src/main/java/com/rapid7/client/dcerpc/dto/ContextHandle.java
index bae66b5a..59b880a1 100644
--- a/src/main/java/com/rapid7/client/dcerpc/dto/ContextHandle.java
+++ b/src/main/java/com/rapid7/client/dcerpc/dto/ContextHandle.java
@@ -21,9 +21,9 @@
package com.rapid7.client.dcerpc.dto;
+import com.google.common.io.BaseEncoding;
import java.util.Arrays;
import java.util.Objects;
-import org.bouncycastle.util.encoders.Hex;
/**
* Represents a Windows Context Handle
@@ -76,7 +76,7 @@ public static ContextHandle fromHex(final String hString) {
if (hString == null || hString.length() > (bytes.length * 2)) {
throw new IllegalArgumentException("hString is invalid: " + hString);
}
- final byte[] handle = Hex.decode(hString);
+ final byte[] handle = BaseEncoding.base16().decode(hString.toUpperCase());
int srcPos = 0;
int index = 0;
while (index < handle.length) {
diff --git a/src/main/java/com/rapid7/client/dcerpc/dto/SID.java b/src/main/java/com/rapid7/client/dcerpc/dto/SID.java
index 707fb958..6093f934 100644
--- a/src/main/java/com/rapid7/client/dcerpc/dto/SID.java
+++ b/src/main/java/com/rapid7/client/dcerpc/dto/SID.java
@@ -21,9 +21,9 @@
package com.rapid7.client.dcerpc.dto;
+import com.google.common.io.BaseEncoding;
import java.util.Arrays;
import java.util.Objects;
-import org.bouncycastle.util.encoders.Hex;
/**
* SID
@@ -126,7 +126,7 @@ public String toString() {
b.append(revision & 0xFF).append("-");
if (identifierAuthority[0] != (byte) 0 || identifierAuthority[1] != (byte) 0) {
b.append("0x");
- b.append(Hex.toHexString(identifierAuthority));
+ b.append(BaseEncoding.base16().encode(identifierAuthority));
} else {
long shift = 0;
long id = 0;
@@ -169,7 +169,7 @@ public static SID fromString(String sidString) throws MalformedSIDStringExceptio
final byte[] identifierAuthority;
if (identifierAuthorityString.toUpperCase().startsWith("0X")) {
final String bytes = identifierAuthorityString.substring(2, identifierAuthorityString.length());
- identifierAuthority = Hex.decode(bytes);
+ identifierAuthority = BaseEncoding.base16().decode(bytes);
} else {
final long identifierAuthorityValue = Long.parseLong(identifierAuthorityString);
identifierAuthority = new byte[] {
diff --git a/src/main/java/com/rapid7/client/dcerpc/io/HexifyImpl.java b/src/main/java/com/rapid7/client/dcerpc/io/HexifyImpl.java
index 24ab0df9..cc3153f4 100644
--- a/src/main/java/com/rapid7/client/dcerpc/io/HexifyImpl.java
+++ b/src/main/java/com/rapid7/client/dcerpc/io/HexifyImpl.java
@@ -18,10 +18,10 @@
*/
package com.rapid7.client.dcerpc.io;
+import com.google.common.io.BaseEncoding;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import org.bouncycastle.util.encoders.Hex;
public abstract class HexifyImpl implements Hexify {
@Override
@@ -30,12 +30,12 @@ public String toHexString() throws IOException {
final PacketOutput packetOut = new PacketOutput(packetOutputStream);
marshal(packetOut);
final byte[] packetOutBytes = packetOutputStream.toByteArray();
- return Hex.toHexString(packetOutBytes);
+ return BaseEncoding.base16().lowerCase().encode(packetOutBytes);
}
@Override
public void fromHexString(final String hexIn) throws IOException {
- final byte[] packetInBytes = Hex.decode(hexIn);
+ final byte[] packetInBytes = BaseEncoding.base16().decode(hexIn.replaceAll("\\s", "").toUpperCase());
final ByteArrayInputStream packetInputStream = new ByteArrayInputStream(packetInBytes);
final PacketInput packetIn = new PacketInput(packetInputStream);
unmarshal(packetIn);
diff --git a/src/main/java/com/rapid7/client/dcerpc/msrrp/dto/RegistryValue.java b/src/main/java/com/rapid7/client/dcerpc/msrrp/dto/RegistryValue.java
index 0175408b..fd2d9f28 100644
--- a/src/main/java/com/rapid7/client/dcerpc/msrrp/dto/RegistryValue.java
+++ b/src/main/java/com/rapid7/client/dcerpc/msrrp/dto/RegistryValue.java
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright 2017, Rapid7, Inc.
*
* License: BSD-3-clause
@@ -20,6 +20,7 @@
*/
package com.rapid7.client.dcerpc.msrrp.dto;
+import com.google.common.io.BaseEncoding;
import javax.activation.UnsupportedDataTypeException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@@ -31,7 +32,6 @@
import java.util.List;
import java.util.Objects;
import org.apache.commons.lang3.ArrayUtils;
-import org.bouncycastle.util.encoders.Hex;
public class RegistryValue {
private final String name;
@@ -58,12 +58,14 @@ public RegistryValue(final String name, final RegistryValueType type, final byte
case REG_DWORD:
case REG_DWORD_BIG_ENDIAN:
if (data.length != 4) {
- throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length, Hex.toHexString(data).toUpperCase()));
+ throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length,
+ BaseEncoding.base16().encode(data)));
}
break;
case REG_QWORD:
if (data.length != 8) {
- throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length, Hex.toHexString(data).toUpperCase()));
+ throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length,
+ BaseEncoding.base16().encode(data)));
}
break;
case REG_EXPAND_SZ:
@@ -71,7 +73,8 @@ public RegistryValue(final String name, final RegistryValueType type, final byte
case REG_SZ:
case REG_MULTI_SZ:
if ((data.length & 1) != 0) {
- throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length, Hex.toHexString(data).toUpperCase()));
+ throw new IOException(String.format("Data type %s is invalid with length %d: 0x%s,", type, data.length,
+ BaseEncoding.base16().encode(data)));
}
default:
}
@@ -132,7 +135,7 @@ public String getDataAsBinaryStr() {
}
public String getDataAsHexStr() {
- return Hex.toHexString(data).toUpperCase();
+ return BaseEncoding.base16().encode(data);
}
public String[] getDataAsMultiStr() throws UnsupportedEncodingException {