Base64.smali

.class public Lcom/sdk/orion/utils/Base64;
.super Ljava/lang/Object;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/sdk/orion/utils/Base64$DecInputStream;,
        Lcom/sdk/orion/utils/Base64$EncOutputStream;,
        Lcom/sdk/orion/utils/Base64$Decoder;,
        Lcom/sdk/orion/utils/Base64$Encoder;
    }
.end annotation


# static fields
.field private static final HEX_THREE:I = 0x3

.field private static final STATE_EQULE:C = '='

.field private static final STATE_FOUR:I = 0x4

.field private static final STATE_SIX:I = 0x6

.field private static final STATE_THREE:I = 0x3

.field private static final STATE_TWELVE:I = 0xc

.field private static final STATE_TWO:I = 0x2


# direct methods
.method private constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static getDecoder()Lcom/sdk/orion/utils/Base64$Decoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Decoder;->RFC4648:Lcom/sdk/orion/utils/Base64$Decoder;

    return-object v0
.end method

.method public static getEncoder()Lcom/sdk/orion/utils/Base64$Encoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Encoder;->RFC4648:Lcom/sdk/orion/utils/Base64$Encoder;

    return-object v0
.end method

.method public static getMimeDecoder()Lcom/sdk/orion/utils/Base64$Decoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Decoder;->RFC2045:Lcom/sdk/orion/utils/Base64$Decoder;

    return-object v0
.end method

.method public static getMimeEncoder()Lcom/sdk/orion/utils/Base64$Encoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Encoder;->RFC2045:Lcom/sdk/orion/utils/Base64$Encoder;

    return-object v0
.end method

.method public static getMimeEncoder(I[B)Lcom/sdk/orion/utils/Base64$Encoder;
    .registers 9

    const/4 v1, 0x0

    # getter for: Lcom/sdk/orion/utils/Base64$Decoder;->FROM_BASE_SIXTY:[I
    invoke-static {}, Lcom/sdk/orion/utils/Base64$Decoder;->access$000()[I

    move-result-object v2

    array-length v3, p1

    move v0, v1

    :goto_7
    if-ge v0, v3, :cond_31

    aget-byte v4, p1, v0

    and-int/lit16 v5, v4, 0xff

    aget v5, v2, v5

    const/4 v6, -0x1

    if-eq v5, v6, :cond_2e

    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string/jumbo v2, "Illegal base64 line separator character 0x"

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    const/16 v2, 0x10

    invoke-static {v4, v2}, Ljava/lang/Integer;->toString(II)Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_2e
    add-int/lit8 v0, v0, 0x1

    goto :goto_7

    :cond_31
    if-gtz p0, :cond_36

    sget-object v0, Lcom/sdk/orion/utils/Base64$Encoder;->RFC4648:Lcom/sdk/orion/utils/Base64$Encoder;

    :goto_35
    return-object v0

    :cond_36
    new-instance v0, Lcom/sdk/orion/utils/Base64$Encoder;

    shr-int/lit8 v2, p0, 0x2

    shl-int/lit8 v3, v2, 0x2

    const/4 v4, 0x1

    const/4 v5, 0x0

    move-object v2, p1

    invoke-direct/range {v0 .. v5}, Lcom/sdk/orion/utils/Base64$Encoder;-><init>(Z[BIZLcom/sdk/orion/utils/Base64$1;)V

    goto :goto_35
.end method

.method public static getUrlDecoder()Lcom/sdk/orion/utils/Base64$Decoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Decoder;->RFC4648_URLSAFE:Lcom/sdk/orion/utils/Base64$Decoder;

    return-object v0
.end method

.method public static getUrlEncoder()Lcom/sdk/orion/utils/Base64$Encoder;
    .registers 1

    sget-object v0, Lcom/sdk/orion/utils/Base64$Encoder;->RFC4648_URLSAFE:Lcom/sdk/orion/utils/Base64$Encoder;

    return-object v0
.end method