package org.bouncycastle.util.encoders; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import org.bouncycastle.util.Strings; /* loaded from: classes6.dex */ public class Base64 { private static final Encoder encoder = new Base64Encoder(); public static String toBase64String(byte[] bArr, int i, int i2) { return Strings.fromByteArray(encode(bArr, i, i2)); } public static String toBase64String(byte[] bArr) { return toBase64String(bArr, 0, bArr.length); } public static byte[] encode(byte[] bArr, int i, int i2) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(((i2 + 2) / 3) << 2); try { encoder.encode(bArr, i, i2, byteArrayOutputStream); return byteArrayOutputStream.toByteArray(); } catch (Exception e) { StringBuilder sb = new StringBuilder("exception encoding base64 string: "); sb.append(e.getMessage()); throw new EncoderException(sb.toString(), e); } } public static byte[] encode(byte[] bArr) { return encode(bArr, 0, bArr.length); } public static int encode(byte[] bArr, OutputStream outputStream) throws IOException { return encoder.encode(bArr, 0, bArr.length, outputStream); } public static int encode(byte[] bArr, int i, int i2, OutputStream outputStream) throws IOException { return encoder.encode(bArr, i, i2, outputStream); } public static byte[] decode(byte[] bArr) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream((bArr.length / 4) * 3); try { encoder.decode(bArr, 0, bArr.length, byteArrayOutputStream); return byteArrayOutputStream.toByteArray(); } catch (Exception e) { StringBuilder sb = new StringBuilder("unable to decode base64 data: "); sb.append(e.getMessage()); throw new DecoderException(sb.toString(), e); } } public static byte[] decode(String str) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream((str.length() / 4) * 3); try { encoder.decode(str, byteArrayOutputStream); return byteArrayOutputStream.toByteArray(); } catch (Exception e) { StringBuilder sb = new StringBuilder("unable to decode base64 string: "); sb.append(e.getMessage()); throw new DecoderException(sb.toString(), e); } } public static int decode(String str, OutputStream outputStream) throws IOException { return encoder.decode(str, outputStream); } }