.class public Lcom/amazonaws/util/BinaryUtils; .super Ljava/lang/Object; .source "BinaryUtils.java" # static fields .field private static final FF_LOCATION:I = 0x6 .field private static final HEX_LENGTH_8:I = 0x8 .field private static final HEX_PARSE_16:I = 0x10 # direct methods .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static copyAllBytesFrom(Ljava/nio/ByteBuffer;)[B .locals 3 if-nez p0, :cond_0 const/4 p0, 0x0 return-object p0 .line 1 :cond_0 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->hasArray()Z move-result v0 if-eqz v0, :cond_1 .line 2 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->array()[B move-result-object v0 .line 3 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->arrayOffset()I move-result v1 .line 4 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->arrayOffset()I move-result v2 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->limit()I move-result p0 add-int/2addr p0, v2 .line 5 invoke-static {v0, v1, p0}, Ljava/util/Arrays;->copyOfRange([BII)[B move-result-object p0 return-object p0 .line 6 :cond_1 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer; move-result-object p0 .line 7 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer; .line 8 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->remaining()I move-result v0 new-array v0, v0, [B .line 9 invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; return-object v0 .end method .method public static fromBase64(Ljava/lang/String;)[B .locals 0 if-nez p0, :cond_0 const/4 p0, 0x0 goto :goto_0 .line 1 :cond_0 invoke-static {p0}, Lcom/amazonaws/util/Base64;->decode(Ljava/lang/String;)[B move-result-object p0 :goto_0 return-object p0 .end method .method public static fromHex(Ljava/lang/String;)[B .locals 6 .line 1 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 add-int/lit8 v0, v0, 0x1 div-int/lit8 v0, v0, 0x2 new-array v0, v0, [B const/4 v1, 0x0 move v2, v1 .line 2 :goto_0 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v3 if-ge v1, v3, :cond_0 add-int/lit8 v3, v1, 0x2 .line 3 invoke-virtual {p0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 add-int/lit8 v4, v2, 0x1 const/16 v5, 0x10 .line 4 invoke-static {v1, v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I move-result v1 int-to-byte v1, v1 aput-byte v1, v0, v2 move v1, v3 move v2, v4 goto :goto_0 :cond_0 return-object v0 .end method .method public static toBase64([B)Ljava/lang/String; .locals 0 .line 1 invoke-static {p0}, Lcom/amazonaws/util/Base64;->encodeAsString([B)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static toHex([B)Ljava/lang/String; .locals 5 .line 1 new-instance v0, Ljava/lang/StringBuilder; array-length v1, p0 mul-int/lit8 v1, v1, 0x2 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(I)V const/4 v1, 0x0 .line 2 :goto_0 array-length v2, p0 if-ge v1, v2, :cond_2 .line 3 aget-byte v2, p0, v1 invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v2 .line 4 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v3 const/4 v4, 0x1 if-ne v3, v4, :cond_0 const-string v3, "0" .line 5 invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; goto :goto_1 .line 6 :cond_0 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v3 const/16 v4, 0x8 if-ne v3, v4, :cond_1 const/4 v3, 0x6 .line 7 invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v2 .line 8 :cond_1 :goto_1 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 9 :cond_2 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {p0}, Lcom/amazonaws/util/StringUtils;->lowerCase(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static toStream(Ljava/nio/ByteBuffer;)Ljava/io/InputStream; .locals 1 .line 1 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->remaining()I move-result v0 new-array v0, v0, [B .line 2 invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; .line 3 new-instance p0, Ljava/io/ByteArrayInputStream; invoke-direct {p0, v0}, Ljava/io/ByteArrayInputStream;->([B)V return-object p0 .end method