EnhancementGuavagood first issue
Description
As of today we are using:
BaseEncoding.base16()-- can be replaced with our existingByteUtilsmethods:formatHexandparseHex-- see PR #4011BaseEncoding.base32()-- can be replaced with Bouncy Castle Base32 -- see PR #4012BaseEncoding.base64()-- can be replaced withBouncy Castle Base64update: we should use java.util.Base64 -- see PR #4017
This helps implement Issue #2105 and although we want to also migrate away from Bouncy Castle (Issue #3912) migrating away from Guava is a short-term goal so I think it is OK to use Bouncy Castle (for now) to achieve it.
Update: for the Base32 and Base64 implementations, create methods that are identical (or very similar) to the Guava methods and place them in a class named BaseUtils in org.bitcoinj.core.internal.
I would also recommend doing this as a series of 3 PRs: one each for base16, base32, and base64.
Update: it looks like we can use java.util.Base64 as it is available in both Java 8 and Android API 26 (Android 8.0) -- see Android reference documentation: java.util.Base64