Huge refactor for 4.2
[auto-patcher.git] / patches / pdroid / 4.1 / provisionals / system / framework / framework.jar.out / smali / android / content / pm / ContainerEncryptionParams.smali
blobe8d52f6613ece303210b92345343bc5aeb18da83
1 .class public Landroid/content/pm/ContainerEncryptionParams;
2 .super Ljava/lang/Object;
3 .source "ContainerEncryptionParams.java"
5 # interfaces
6 .implements Landroid/os/Parcelable;
9 # static fields
10 .field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
11     .annotation system Ldalvik/annotation/Signature;
12         value = {
13             "Landroid/os/Parcelable$Creator",
14             "<",
15             "Landroid/content/pm/ContainerEncryptionParams;",
16             ">;"
17         }
18     .end annotation
19 .end field
21 .field private static final ENC_PARAMS_IV_PARAMETERS:I = 0x1
23 .field private static final MAC_PARAMS_NONE:I = 0x1
25 .field protected static final TAG:Ljava/lang/String; = "ContainerEncryptionParams"
27 .field private static final TO_STRING_PREFIX:Ljava/lang/String; = "ContainerEncryptionParams{"
30 # instance fields
31 .field private final mAuthenticatedDataStart:J
33 .field private final mDataEnd:J
35 .field private final mEncryptedDataStart:J
37 .field private final mEncryptionAlgorithm:Ljava/lang/String;
39 .field private final mEncryptionKey:Ljavax/crypto/SecretKey;
41 .field private final mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
43 .field private final mMacAlgorithm:Ljava/lang/String;
45 .field private final mMacKey:Ljavax/crypto/SecretKey;
47 .field private final mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
49 .field private final mMacTag:[B
52 # direct methods
53 .method static constructor <clinit>()V
54     .registers 1
56     new-instance v0, Landroid/content/pm/ContainerEncryptionParams$1;
58     invoke-direct {v0}, Landroid/content/pm/ContainerEncryptionParams$1;-><init>()V
60     sput-object v0, Landroid/content/pm/ContainerEncryptionParams;->CREATOR:Landroid/os/Parcelable$Creator;
62     return-void
63 .end method
65 .method private constructor <init>(Landroid/os/Parcel;)V
66     .registers 8
67     .annotation system Ldalvik/annotation/Throws;
68         value = {
69             Ljava/security/InvalidAlgorithmParameterException;
70         }
71     .end annotation
73     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
75     invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
77     move-result-object v3
79     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
81     invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
83     move-result v0
85     invoke-virtual {p1}, Landroid/os/Parcel;->createByteArray()[B
87     move-result-object v1
89     invoke-virtual {p1}, Landroid/os/Parcel;->readSerializable()Ljava/io/Serializable;
91     move-result-object v3
93     check-cast v3, Ljavax/crypto/SecretKey;
95     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
97     invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
99     move-result-object v3
101     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
103     invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
105     move-result v2
107     invoke-virtual {p1}, Landroid/os/Parcel;->createByteArray()[B
109     invoke-virtual {p1}, Landroid/os/Parcel;->readSerializable()Ljava/io/Serializable;
111     move-result-object v3
113     check-cast v3, Ljavax/crypto/SecretKey;
115     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
117     invoke-virtual {p1}, Landroid/os/Parcel;->createByteArray()[B
119     move-result-object v3
121     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
123     invoke-virtual {p1}, Landroid/os/Parcel;->readLong()J
125     move-result-wide v3
127     iput-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
129     invoke-virtual {p1}, Landroid/os/Parcel;->readLong()J
131     move-result-wide v3
133     iput-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
135     invoke-virtual {p1}, Landroid/os/Parcel;->readLong()J
137     move-result-wide v3
139     iput-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
141     packed-switch v0, :pswitch_data_96
143     new-instance v3, Ljava/security/InvalidAlgorithmParameterException;
145     new-instance v4, Ljava/lang/StringBuilder;
147     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
149     const-string v5, "Unknown parameter type "
151     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
153     move-result-object v4
155     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
157     move-result-object v4
159     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
161     move-result-object v4
163     invoke-direct {v3, v4}, Ljava/security/InvalidAlgorithmParameterException;-><init>(Ljava/lang/String;)V
165     throw v3
167     :pswitch_62
168     new-instance v3, Ljavax/crypto/spec/IvParameterSpec;
170     invoke-direct {v3, v1}, Ljavax/crypto/spec/IvParameterSpec;-><init>([B)V
172     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
174     packed-switch v2, :pswitch_data_9c
176     new-instance v3, Ljava/security/InvalidAlgorithmParameterException;
178     new-instance v4, Ljava/lang/StringBuilder;
180     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
182     const-string v5, "Unknown parameter type "
184     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
186     move-result-object v4
188     invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
190     move-result-object v4
192     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
194     move-result-object v4
196     invoke-direct {v3, v4}, Ljava/security/InvalidAlgorithmParameterException;-><init>(Ljava/lang/String;)V
198     throw v3
200     :pswitch_85
201     const/4 v3, 0x0
203     iput-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
205     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
207     if-nez v3, :cond_94
209     new-instance v3, Ljava/lang/NullPointerException;
211     const-string v4, "encryptionKey == null"
213     invoke-direct {v3, v4}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
215     throw v3
217     :cond_94
218     return-void
220     nop
222     :pswitch_data_96
223     .packed-switch 0x1
224         :pswitch_62
225     .end packed-switch
227     :pswitch_data_9c
228     .packed-switch 0x1
229         :pswitch_85
230     .end packed-switch
231 .end method
233 .method synthetic constructor <init>(Landroid/os/Parcel;Landroid/content/pm/ContainerEncryptionParams$1;)V
234     .registers 3
235     .annotation system Ldalvik/annotation/Throws;
236         value = {
237             Ljava/security/InvalidAlgorithmParameterException;
238         }
239     .end annotation
241     invoke-direct {p0, p1}, Landroid/content/pm/ContainerEncryptionParams;-><init>(Landroid/os/Parcel;)V
243     return-void
244 .end method
246 .method public constructor <init>(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/SecretKey;)V
247     .registers 18
248     .annotation system Ldalvik/annotation/Throws;
249         value = {
250             Ljava/security/InvalidAlgorithmParameterException;
251         }
252     .end annotation
254     const/4 v4, 0x0
256     const/4 v5, 0x0
258     const/4 v6, 0x0
260     const/4 v7, 0x0
262     const-wide/16 v8, -0x1
264     const-wide/16 v10, -0x1
266     const-wide/16 v12, -0x1
268     move-object v0, p0
270     move-object v1, p1
272     move-object/from16 v2, p2
274     move-object/from16 v3, p3
276     invoke-direct/range {v0 .. v13}, Landroid/content/pm/ContainerEncryptionParams;-><init>(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/SecretKey;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/SecretKey;[BJJJ)V
278     return-void
279 .end method
281 .method public constructor <init>(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/SecretKey;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/SecretKey;[BJJJ)V
282     .registers 16
283     .annotation system Ldalvik/annotation/Throws;
284         value = {
285             Ljava/security/InvalidAlgorithmParameterException;
286         }
287     .end annotation
289     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
291     invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
293     move-result v0
295     if-eqz v0, :cond_11
297     new-instance v0, Ljava/lang/NullPointerException;
299     const-string v1, "algorithm == null"
301     invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
303     throw v0
305     :cond_11
306     if-nez p2, :cond_1b
308     new-instance v0, Ljava/lang/NullPointerException;
310     const-string v1, "encryptionSpec == null"
312     invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
314     throw v0
316     :cond_1b
317     if-nez p3, :cond_25
319     new-instance v0, Ljava/lang/NullPointerException;
321     const-string v1, "encryptionKey == null"
323     invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
325     throw v0
327     :cond_25
328     invoke-static {p4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
330     move-result v0
332     if-nez v0, :cond_36
334     if-nez p6, :cond_36
336     new-instance v0, Ljava/lang/NullPointerException;
338     const-string/jumbo v1, "macKey == null"
340     invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
342     throw v0
344     :cond_36
345     instance-of v0, p2, Ljavax/crypto/spec/IvParameterSpec;
347     if-nez v0, :cond_42
349     new-instance v0, Ljava/security/InvalidAlgorithmParameterException;
351     const-string v1, "Unknown parameter spec class; must be IvParameters"
353     invoke-direct {v0, v1}, Ljava/security/InvalidAlgorithmParameterException;-><init>(Ljava/lang/String;)V
355     throw v0
357     :cond_42
358     iput-object p1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
360     check-cast p2, Ljavax/crypto/spec/IvParameterSpec;
362     iput-object p2, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
364     iput-object p3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
366     iput-object p4, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
368     iput-object p5, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
370     iput-object p6, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
372     iput-object p7, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
374     iput-wide p8, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
376     iput-wide p10, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
378     iput-wide p12, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
380     return-void
381 .end method
383 .method private static final isSecretKeyEqual(Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;)Z
384     .registers 7
386     const/4 v2, 0x0
388     invoke-interface {p0}, Ljavax/crypto/SecretKey;->getFormat()Ljava/lang/String;
390     move-result-object v0
392     invoke-interface {p1}, Ljavax/crypto/SecretKey;->getFormat()Ljava/lang/String;
394     move-result-object v1
396     if-nez v0, :cond_1a
398     if-eq v0, v1, :cond_e
400     :cond_d
401     :goto_d
402     return v2
404     :cond_e
405     invoke-interface {p0}, Ljavax/crypto/SecretKey;->getEncoded()[B
407     move-result-object v3
409     invoke-interface {p1}, Ljavax/crypto/SecretKey;->getEncoded()[B
411     move-result-object v4
413     if-ne v3, v4, :cond_d
415     :cond_18
416     const/4 v2, 0x1
418     goto :goto_d
420     :cond_1a
421     invoke-interface {p1}, Ljavax/crypto/SecretKey;->getFormat()Ljava/lang/String;
423     move-result-object v3
425     invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
427     move-result v3
429     if-eqz v3, :cond_d
431     invoke-interface {p0}, Ljavax/crypto/SecretKey;->getEncoded()[B
433     move-result-object v3
435     invoke-interface {p1}, Ljavax/crypto/SecretKey;->getEncoded()[B
437     move-result-object v4
439     invoke-static {v3, v4}, Ljava/util/Arrays;->equals([B[B)Z
441     move-result v3
443     if-nez v3, :cond_18
445     goto :goto_d
446 .end method
449 # virtual methods
450 .method public describeContents()I
451     .registers 2
453     const/4 v0, 0x0
455     return v0
456 .end method
458 .method public equals(Ljava/lang/Object;)Z
459     .registers 9
461     const/4 v1, 0x1
463     const/4 v2, 0x0
465     if-ne p0, p1, :cond_5
467     :cond_4
468     :goto_4
469     return v1
471     :cond_5
472     instance-of v3, p1, Landroid/content/pm/ContainerEncryptionParams;
474     if-nez v3, :cond_b
476     move v1, v2
478     goto :goto_4
480     :cond_b
481     move-object v0, p1
483     check-cast v0, Landroid/content/pm/ContainerEncryptionParams;
485     iget-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
487     iget-wide v5, v0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
489     cmp-long v3, v3, v5
491     if-nez v3, :cond_26
493     iget-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
495     iget-wide v5, v0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
497     cmp-long v3, v3, v5
499     if-nez v3, :cond_26
501     iget-wide v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
503     iget-wide v5, v0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
505     cmp-long v3, v3, v5
507     if-eqz v3, :cond_28
509     :cond_26
510     move v1, v2
512     goto :goto_4
514     :cond_28
515     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
517     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
519     invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
521     move-result v3
523     if-eqz v3, :cond_3c
525     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
527     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
529     invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
531     move-result v3
533     if-nez v3, :cond_3e
535     :cond_3c
536     move v1, v2
538     goto :goto_4
540     :cond_3e
541     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
543     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
545     invoke-static {v3, v4}, Landroid/content/pm/ContainerEncryptionParams;->isSecretKeyEqual(Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;)Z
547     move-result v3
549     if-eqz v3, :cond_52
551     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
553     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
555     invoke-static {v3, v4}, Landroid/content/pm/ContainerEncryptionParams;->isSecretKeyEqual(Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;)Z
557     move-result v3
559     if-nez v3, :cond_54
561     :cond_52
562     move v1, v2
564     goto :goto_4
566     :cond_54
567     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
569     invoke-virtual {v3}, Ljavax/crypto/spec/IvParameterSpec;->getIV()[B
571     move-result-object v3
573     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
575     invoke-virtual {v4}, Ljavax/crypto/spec/IvParameterSpec;->getIV()[B
577     move-result-object v4
579     invoke-static {v3, v4}, Ljava/util/Arrays;->equals([B[B)Z
581     move-result v3
583     if-eqz v3, :cond_76
585     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
587     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
589     invoke-static {v3, v4}, Ljava/util/Arrays;->equals([B[B)Z
591     move-result v3
593     if-eqz v3, :cond_76
595     iget-object v3, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
597     iget-object v4, v0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
599     if-eq v3, v4, :cond_4
601     :cond_76
602     move v1, v2
604     goto :goto_4
605 .end method
607 .method public getAuthenticatedDataStart()J
608     .registers 3
610     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
612     return-wide v0
613 .end method
615 .method public getDataEnd()J
616     .registers 3
618     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
620     return-wide v0
621 .end method
623 .method public getEncryptedDataStart()J
624     .registers 3
626     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
628     return-wide v0
629 .end method
631 .method public getEncryptionAlgorithm()Ljava/lang/String;
632     .registers 2
634     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
636     return-object v0
637 .end method
639 .method public getEncryptionKey()Ljavax/crypto/SecretKey;
640     .registers 2
642     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
644     return-object v0
645 .end method
647 .method public getEncryptionSpec()Ljava/security/spec/AlgorithmParameterSpec;
648     .registers 2
650     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
652     return-object v0
653 .end method
655 .method public getMacAlgorithm()Ljava/lang/String;
656     .registers 2
658     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
660     return-object v0
661 .end method
663 .method public getMacKey()Ljavax/crypto/SecretKey;
664     .registers 2
666     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
668     return-object v0
669 .end method
671 .method public getMacSpec()Ljava/security/spec/AlgorithmParameterSpec;
672     .registers 2
674     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
676     return-object v0
677 .end method
679 .method public getMacTag()[B
680     .registers 2
682     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
684     return-object v0
685 .end method
687 .method public hashCode()I
688     .registers 8
690     const/4 v0, 0x3
692     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
694     invoke-virtual {v1}, Ljava/lang/String;->hashCode()I
696     move-result v1
698     mul-int/lit8 v1, v1, 0x5
700     add-int/2addr v0, v1
702     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
704     invoke-virtual {v1}, Ljavax/crypto/spec/IvParameterSpec;->getIV()[B
706     move-result-object v1
708     invoke-static {v1}, Ljava/util/Arrays;->hashCode([B)I
710     move-result v1
712     mul-int/lit8 v1, v1, 0x7
714     add-int/2addr v0, v1
716     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
718     invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
720     move-result v1
722     mul-int/lit8 v1, v1, 0xb
724     add-int/2addr v0, v1
726     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
728     invoke-virtual {v1}, Ljava/lang/String;->hashCode()I
730     move-result v1
732     mul-int/lit8 v1, v1, 0xd
734     add-int/2addr v0, v1
736     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
738     invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
740     move-result v1
742     mul-int/lit8 v1, v1, 0x11
744     add-int/2addr v0, v1
746     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
748     invoke-static {v1}, Ljava/util/Arrays;->hashCode([B)I
750     move-result v1
752     mul-int/lit8 v1, v1, 0x13
754     add-int/2addr v0, v1
756     int-to-long v1, v0
758     const-wide/16 v3, 0x17
760     iget-wide v5, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
762     mul-long/2addr v3, v5
764     add-long/2addr v1, v3
766     long-to-int v0, v1
768     int-to-long v1, v0
770     const-wide/16 v3, 0x1d
772     iget-wide v5, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
774     mul-long/2addr v3, v5
776     add-long/2addr v1, v3
778     long-to-int v0, v1
780     int-to-long v1, v0
782     const-wide/16 v3, 0x1f
784     iget-wide v5, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
786     mul-long/2addr v3, v5
788     add-long/2addr v1, v3
790     long-to-int v0, v1
792     return v0
793 .end method
795 .method public toString()Ljava/lang/String;
796     .registers 4
798     new-instance v0, Ljava/lang/StringBuilder;
800     const-string v1, "ContainerEncryptionParams{"
802     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
804     const-string/jumbo v1, "mEncryptionAlgorithm=\""
806     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
808     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
810     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
812     const-string v1, "\","
814     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
816     const-string/jumbo v1, "mEncryptionSpec="
818     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
820     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
822     invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
824     move-result-object v1
826     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
828     const-string/jumbo v1, "mEncryptionKey="
830     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
832     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
834     invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
836     move-result-object v1
838     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
840     const-string/jumbo v1, "mMacAlgorithm=\""
842     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
844     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
846     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
848     const-string v1, "\","
850     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
852     const-string/jumbo v1, "mMacSpec="
854     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
856     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacSpec:Ljava/security/spec/AlgorithmParameterSpec;
858     invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
860     move-result-object v1
862     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
864     const-string/jumbo v1, "mMacKey="
866     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
868     iget-object v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
870     invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
872     move-result-object v1
874     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
876     const-string v1, ",mAuthenticatedDataStart="
878     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
880     iget-wide v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
882     invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
884     const-string v1, ",mEncryptedDataStart="
886     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
888     iget-wide v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
890     invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
892     const-string v1, ",mDataEnd="
894     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
896     iget-wide v1, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
898     invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
900     const/16 v1, 0x7d
902     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
904     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
906     move-result-object v1
908     return-object v1
909 .end method
911 .method public writeToParcel(Landroid/os/Parcel;I)V
912     .registers 5
914     const/4 v1, 0x1
916     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionAlgorithm:Ljava/lang/String;
918     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
920     invoke-virtual {p1, v1}, Landroid/os/Parcel;->writeInt(I)V
922     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionSpec:Ljavax/crypto/spec/IvParameterSpec;
924     invoke-virtual {v0}, Ljavax/crypto/spec/IvParameterSpec;->getIV()[B
926     move-result-object v0
928     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByteArray([B)V
930     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptionKey:Ljavax/crypto/SecretKey;
932     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V
934     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacAlgorithm:Ljava/lang/String;
936     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
938     invoke-virtual {p1, v1}, Landroid/os/Parcel;->writeInt(I)V
940     const/4 v0, 0x0
942     new-array v0, v0, [B
944     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByteArray([B)V
946     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacKey:Ljavax/crypto/SecretKey;
948     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V
950     iget-object v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mMacTag:[B
952     invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByteArray([B)V
954     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mAuthenticatedDataStart:J
956     invoke-virtual {p1, v0, v1}, Landroid/os/Parcel;->writeLong(J)V
958     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mEncryptedDataStart:J
960     invoke-virtual {p1, v0, v1}, Landroid/os/Parcel;->writeLong(J)V
962     iget-wide v0, p0, Landroid/content/pm/ContainerEncryptionParams;->mDataEnd:J
964     invoke-virtual {p1, v0, v1}, Landroid/os/Parcel;->writeLong(J)V
966     return-void
967 .end method