mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-09 00:59:39 +02:00
Use java.util.Base64 and remove build-in Base64 API
This commit is contained in:
parent
0d17f195b0
commit
7d5274dad1
7 changed files with 57 additions and 1802 deletions
File diff suppressed because it is too large
Load diff
|
@ -16,9 +16,7 @@
|
|||
*/
|
||||
package org.jivesoftware.smack.util.stringencoder.java7;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import java.util.Base64;
|
||||
|
||||
/**
|
||||
* A Base 64 encoding implementation.
|
||||
|
@ -28,10 +26,12 @@ public final class Java7Base64Encoder implements org.jivesoftware.smack.util.str
|
|||
|
||||
private static final Java7Base64Encoder instance = new Java7Base64Encoder();
|
||||
|
||||
private static final int BASE64_ENCODER_FLAGS = Base64.DONT_BREAK_LINES;
|
||||
private final Base64.Encoder encoder;
|
||||
private final Base64.Decoder decoder;
|
||||
|
||||
private Java7Base64Encoder() {
|
||||
// Use getInstance()
|
||||
encoder = Base64.getEncoder();
|
||||
decoder = Base64.getDecoder();
|
||||
}
|
||||
|
||||
public static Java7Base64Encoder getInstance() {
|
||||
|
@ -40,27 +40,16 @@ public final class Java7Base64Encoder implements org.jivesoftware.smack.util.str
|
|||
|
||||
@Override
|
||||
public byte[] decode(String string) {
|
||||
return Base64.decode(string);
|
||||
return decoder.decode(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] decode(byte[] input, int offset, int len) {
|
||||
return Base64.decode(input, offset, len, 0);
|
||||
public String encodeToString(byte[] input) {
|
||||
return encoder.encodeToString(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String encodeToString(byte[] input, int offset, int len) {
|
||||
return Base64.encodeBytes(input, offset, len, BASE64_ENCODER_FLAGS);
|
||||
public byte[] encode(byte[] input) {
|
||||
return encoder.encode(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] encode(byte[] input, int offset, int len) {
|
||||
String string = encodeToString(input, offset, len);
|
||||
try {
|
||||
return string.getBytes(StringUtils.USASCII);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.jivesoftware.smack.util.stringencoder.java7;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Base64;
|
||||
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import org.jivesoftware.smack.util.stringencoder.StringEncoder;
|
||||
|
@ -37,10 +38,12 @@ public final class Java7Base64UrlSafeEncoder implements StringEncoder<String> {
|
|||
|
||||
private static final Java7Base64UrlSafeEncoder instance = new Java7Base64UrlSafeEncoder();
|
||||
|
||||
private static final int BASE64_ENCODER_FLAGS = Base64.URL_SAFE | Base64.DONT_BREAK_LINES;
|
||||
private final Base64.Encoder encoder;
|
||||
private final Base64.Decoder decoder;
|
||||
|
||||
private Java7Base64UrlSafeEncoder() {
|
||||
// Use getInstance()
|
||||
encoder = Base64.getUrlEncoder();
|
||||
decoder = Base64.getUrlDecoder();
|
||||
}
|
||||
|
||||
public static Java7Base64UrlSafeEncoder getInstance() {
|
||||
|
@ -56,13 +59,14 @@ public final class Java7Base64UrlSafeEncoder implements StringEncoder<String> {
|
|||
catch (UnsupportedEncodingException e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
return Base64.encodeBytes(bytes, BASE64_ENCODER_FLAGS);
|
||||
return encoder.encodeToString(bytes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String decode(String s) {
|
||||
byte[] bytes = decoder.decode(s);
|
||||
try {
|
||||
return new String(Base64.decode(s, BASE64_ENCODER_FLAGS), StringUtils.UTF8);
|
||||
return new String(bytes, StringUtils.UTF8);
|
||||
}
|
||||
catch (UnsupportedEncodingException e) {
|
||||
throw new AssertionError(e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue