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 {