Init
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package android.util;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* JVM test implementation of android.util.Base64 using java.util.Base64.
|
||||
* Enables running Android SRP cryptographic tests on standard desktop JVM.
|
||||
*/
|
||||
public class Base64 {
|
||||
public static final int DEFAULT = 0;
|
||||
public static final int NO_PADDING = 1;
|
||||
public static final int NO_WRAP = 2;
|
||||
public static final int CRLF = 4;
|
||||
public static final int URL_SAFE = 8;
|
||||
public static final int NO_CLOSE = 16;
|
||||
|
||||
public static String encodeToString(byte[] input, int flags) {
|
||||
return encodeToString(input, 0, input.length, flags);
|
||||
}
|
||||
|
||||
public static String encodeToString(byte[] input, int offset, int len, int flags) {
|
||||
byte[] slice;
|
||||
if (offset == 0 && len == input.length) {
|
||||
slice = input;
|
||||
} else {
|
||||
slice = new byte[len];
|
||||
System.arraycopy(input, offset, slice, 0, len);
|
||||
}
|
||||
java.util.Base64.Encoder encoder = ((flags & URL_SAFE) != 0)
|
||||
? java.util.Base64.getUrlEncoder()
|
||||
: java.util.Base64.getEncoder();
|
||||
if ((flags & NO_PADDING) != 0) {
|
||||
encoder = encoder.withoutPadding();
|
||||
}
|
||||
return encoder.encodeToString(slice);
|
||||
}
|
||||
|
||||
public static byte[] encode(byte[] input, int flags) {
|
||||
return encodeToString(input, flags).getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
public static byte[] decode(String str, int flags) {
|
||||
java.util.Base64.Decoder decoder = ((flags & URL_SAFE) != 0)
|
||||
? java.util.Base64.getUrlDecoder()
|
||||
: java.util.Base64.getDecoder();
|
||||
return decoder.decode(str);
|
||||
}
|
||||
|
||||
public static byte[] decode(byte[] input, int flags) {
|
||||
return decode(new String(input, StandardCharsets.UTF_8), flags);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user