public final class android.security.keystore.KeyGenParameterSpec implements java.security.spec.AlgorithmParameterSpec, android.security.keystore.UserAuthArgs
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.security.keystore.KeyGenParameterSpec
  super_class: java.lang.Object
{
  private static final javax.security.auth.x500.X500Principal DEFAULT_CERT_SUBJECT;
    descriptor: Ljavax/security/auth/x500/X500Principal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigInteger DEFAULT_CERT_SERIAL_NUMBER;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Date DEFAULT_CERT_NOT_BEFORE;
    descriptor: Ljava/util/Date;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Date DEFAULT_CERT_NOT_AFTER;
    descriptor: Ljava/util/Date;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String mKeystoreAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mUid;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mKeySize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.security.spec.AlgorithmParameterSpec mSpec;
    descriptor: Ljava/security/spec/AlgorithmParameterSpec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.security.auth.x500.X500Principal mCertificateSubject;
    descriptor: Ljavax/security/auth/x500/X500Principal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.math.BigInteger mCertificateSerialNumber;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Date mCertificateNotBefore;
    descriptor: Ljava/util/Date;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Date mCertificateNotAfter;
    descriptor: Ljava/util/Date;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Date mKeyValidityStart;
    descriptor: Ljava/util/Date;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Date mKeyValidityForOriginationEnd;
    descriptor: Ljava/util/Date;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Date mKeyValidityForConsumptionEnd;
    descriptor: Ljava/util/Date;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mPurposes;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] mDigests;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] mEncryptionPaddings;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] mSignaturePaddings;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] mBlockModes;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mRandomizedEncryptionRequired;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUserAuthenticationRequired;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mUserAuthenticationValidityDurationSeconds;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUserPresenceRequired;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] mAttestationChallenge;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUniqueIdIncluded;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUserAuthenticationValidWhileOnBody;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mInvalidatedByBiometricEnrollment;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mIsStrongBoxBacked;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUserConfirmationRequired;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUnlockedDeviceRequired;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 239
            new javax.security.auth.x500.X500Principal
            dup
            ldc "CN=fake"
            invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
            putstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_SUBJECT:Ljavax/security/auth/x500/X500Principal;
         1: .line 240
            new java.math.BigInteger
            dup
            ldc "1"
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            putstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_SERIAL_NUMBER:Ljava/math/BigInteger;
         2: .line 241
            new java.util.Date
            dup
            lconst_0
            invokespecial java.util.Date.<init>:(J)V
            putstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_NOT_BEFORE:Ljava/util/Date;
         3: .line 242
            new java.util.Date
            dup
            ldc 2461449600000
            invokespecial java.util.Date.<init>:(J)V
            putstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_NOT_AFTER:Ljava/util/Date;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, int, int, java.security.spec.AlgorithmParameterSpec, javax.security.auth.x500.X500Principal, java.math.BigInteger, java.util.Date, java.util.Date, java.util.Date, java.util.Date, java.util.Date, int, java.lang.String[], java.lang.String[], java.lang.String[], java.lang.String[], boolean, boolean, int, boolean, byte[], boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZ[BZZZZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=28, args_size=28
        start local 0 // android.security.keystore.KeyGenParameterSpec this
        start local 1 // java.lang.String keyStoreAlias
        start local 2 // int uid
        start local 3 // int keySize
        start local 4 // java.security.spec.AlgorithmParameterSpec spec
        start local 5 // javax.security.auth.x500.X500Principal certificateSubject
        start local 6 // java.math.BigInteger certificateSerialNumber
        start local 7 // java.util.Date certificateNotBefore
        start local 8 // java.util.Date certificateNotAfter
        start local 9 // java.util.Date keyValidityStart
        start local 10 // java.util.Date keyValidityForOriginationEnd
        start local 11 // java.util.Date keyValidityForConsumptionEnd
        start local 12 // int purposes
        start local 13 // java.lang.String[] digests
        start local 14 // java.lang.String[] encryptionPaddings
        start local 15 // java.lang.String[] signaturePaddings
        start local 16 // java.lang.String[] blockModes
        start local 17 // boolean randomizedEncryptionRequired
        start local 18 // boolean userAuthenticationRequired
        start local 19 // int userAuthenticationValidityDurationSeconds
        start local 20 // boolean userPresenceRequired
        start local 21 // byte[] attestationChallenge
        start local 22 // boolean uniqueIdIncluded
        start local 23 // boolean userAuthenticationValidWhileOnBody
        start local 24 // boolean invalidatedByBiometricEnrollment
        start local 25 // boolean isStrongBoxBacked
        start local 26 // boolean userConfirmationRequired
        start local 27 // boolean unlockedDeviceRequired
         0: .line 280
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 308
            aload 1 /* keyStoreAlias */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 3
         2: .line 309
            new java.lang.IllegalArgumentException
            dup
            ldc "keyStoreAlias must not be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 312
      StackMap locals: android.security.keystore.KeyGenParameterSpec java.lang.String int int java.security.spec.AlgorithmParameterSpec javax.security.auth.x500.X500Principal java.math.BigInteger java.util.Date java.util.Date java.util.Date java.util.Date java.util.Date int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int int int int byte[] int int int int int int
      StackMap stack:
            aload 5 /* certificateSubject */
            ifnonnull 5
         4: .line 313
            getstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_SUBJECT:Ljavax/security/auth/x500/X500Principal;
            astore 5 /* certificateSubject */
         5: .line 315
      StackMap locals:
      StackMap stack:
            aload 7 /* certificateNotBefore */
            ifnonnull 7
         6: .line 316
            getstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_NOT_BEFORE:Ljava/util/Date;
            astore 7 /* certificateNotBefore */
         7: .line 318
      StackMap locals:
      StackMap stack:
            aload 8 /* certificateNotAfter */
            ifnonnull 9
         8: .line 319
            getstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_NOT_AFTER:Ljava/util/Date;
            astore 8 /* certificateNotAfter */
         9: .line 321
      StackMap locals:
      StackMap stack:
            aload 6 /* certificateSerialNumber */
            ifnonnull 11
        10: .line 322
            getstatic android.security.keystore.KeyGenParameterSpec.DEFAULT_CERT_SERIAL_NUMBER:Ljava/math/BigInteger;
            astore 6 /* certificateSerialNumber */
        11: .line 325
      StackMap locals:
      StackMap stack:
            aload 8 /* certificateNotAfter */
            aload 7 /* certificateNotBefore */
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
            ifeq 13
        12: .line 326
            new java.lang.IllegalArgumentException
            dup
            ldc "certificateNotAfter < certificateNotBefore"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyStoreAlias */
            putfield android.security.keystore.KeyGenParameterSpec.mKeystoreAlias:Ljava/lang/String;
        14: .line 330
            aload 0 /* this */
            iload 2 /* uid */
            putfield android.security.keystore.KeyGenParameterSpec.mUid:I
        15: .line 331
            aload 0 /* this */
            iload 3 /* keySize */
            putfield android.security.keystore.KeyGenParameterSpec.mKeySize:I
        16: .line 332
            aload 0 /* this */
            aload 4 /* spec */
            putfield android.security.keystore.KeyGenParameterSpec.mSpec:Ljava/security/spec/AlgorithmParameterSpec;
        17: .line 333
            aload 0 /* this */
            aload 5 /* certificateSubject */
            putfield android.security.keystore.KeyGenParameterSpec.mCertificateSubject:Ljavax/security/auth/x500/X500Principal;
        18: .line 334
            aload 0 /* this */
            aload 6 /* certificateSerialNumber */
            putfield android.security.keystore.KeyGenParameterSpec.mCertificateSerialNumber:Ljava/math/BigInteger;
        19: .line 335
            aload 0 /* this */
            aload 7 /* certificateNotBefore */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            putfield android.security.keystore.KeyGenParameterSpec.mCertificateNotBefore:Ljava/util/Date;
        20: .line 336
            aload 0 /* this */
            aload 8 /* certificateNotAfter */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            putfield android.security.keystore.KeyGenParameterSpec.mCertificateNotAfter:Ljava/util/Date;
        21: .line 337
            aload 0 /* this */
            aload 9 /* keyValidityStart */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            putfield android.security.keystore.KeyGenParameterSpec.mKeyValidityStart:Ljava/util/Date;
        22: .line 338
            aload 0 /* this */
            aload 10 /* keyValidityForOriginationEnd */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            putfield android.security.keystore.KeyGenParameterSpec.mKeyValidityForOriginationEnd:Ljava/util/Date;
        23: .line 339
            aload 0 /* this */
            aload 11 /* keyValidityForConsumptionEnd */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            putfield android.security.keystore.KeyGenParameterSpec.mKeyValidityForConsumptionEnd:Ljava/util/Date;
        24: .line 340
            aload 0 /* this */
            iload 12 /* purposes */
            putfield android.security.keystore.KeyGenParameterSpec.mPurposes:I
        25: .line 341
            aload 0 /* this */
            aload 13 /* digests */
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            putfield android.security.keystore.KeyGenParameterSpec.mDigests:[Ljava/lang/String;
        26: .line 342
            aload 0 /* this */
        27: .line 343
            aload 14 /* encryptionPaddings */
            invokestatic android.security.keystore.ArrayUtils.nullToEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
        28: .line 342
            putfield android.security.keystore.KeyGenParameterSpec.mEncryptionPaddings:[Ljava/lang/String;
        29: .line 344
            aload 0 /* this */
            aload 15 /* signaturePaddings */
            invokestatic android.security.keystore.ArrayUtils.nullToEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            putfield android.security.keystore.KeyGenParameterSpec.mSignaturePaddings:[Ljava/lang/String;
        30: .line 345
            aload 0 /* this */
            aload 16 /* blockModes */
            invokestatic android.security.keystore.ArrayUtils.nullToEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            putfield android.security.keystore.KeyGenParameterSpec.mBlockModes:[Ljava/lang/String;
        31: .line 346
            aload 0 /* this */
            iload 17 /* randomizedEncryptionRequired */
            putfield android.security.keystore.KeyGenParameterSpec.mRandomizedEncryptionRequired:Z
        32: .line 347
            aload 0 /* this */
            iload 18 /* userAuthenticationRequired */
            putfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationRequired:Z
        33: .line 348
            aload 0 /* this */
            iload 20 /* userPresenceRequired */
            putfield android.security.keystore.KeyGenParameterSpec.mUserPresenceRequired:Z
        34: .line 349
            aload 0 /* this */
            iload 19 /* userAuthenticationValidityDurationSeconds */
            putfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationValidityDurationSeconds:I
        35: .line 350
            aload 0 /* this */
            aload 21 /* attestationChallenge */
            invokestatic android.security.keystore.Utils.cloneIfNotNull:([B)[B
            putfield android.security.keystore.KeyGenParameterSpec.mAttestationChallenge:[B
        36: .line 351
            aload 0 /* this */
            iload 22 /* uniqueIdIncluded */
            putfield android.security.keystore.KeyGenParameterSpec.mUniqueIdIncluded:Z
        37: .line 352
            aload 0 /* this */
            iload 23 /* userAuthenticationValidWhileOnBody */
            putfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationValidWhileOnBody:Z
        38: .line 353
            aload 0 /* this */
            iload 24 /* invalidatedByBiometricEnrollment */
            putfield android.security.keystore.KeyGenParameterSpec.mInvalidatedByBiometricEnrollment:Z
        39: .line 354
            aload 0 /* this */
            iload 25 /* isStrongBoxBacked */
            putfield android.security.keystore.KeyGenParameterSpec.mIsStrongBoxBacked:Z
        40: .line 355
            aload 0 /* this */
            iload 26 /* userConfirmationRequired */
            putfield android.security.keystore.KeyGenParameterSpec.mUserConfirmationRequired:Z
        41: .line 356
            aload 0 /* this */
            iload 27 /* unlockedDeviceRequired */
            putfield android.security.keystore.KeyGenParameterSpec.mUnlockedDeviceRequired:Z
        42: .line 357
            return
        end local 27 // boolean unlockedDeviceRequired
        end local 26 // boolean userConfirmationRequired
        end local 25 // boolean isStrongBoxBacked
        end local 24 // boolean invalidatedByBiometricEnrollment
        end local 23 // boolean userAuthenticationValidWhileOnBody
        end local 22 // boolean uniqueIdIncluded
        end local 21 // byte[] attestationChallenge
        end local 20 // boolean userPresenceRequired
        end local 19 // int userAuthenticationValidityDurationSeconds
        end local 18 // boolean userAuthenticationRequired
        end local 17 // boolean randomizedEncryptionRequired
        end local 16 // java.lang.String[] blockModes
        end local 15 // java.lang.String[] signaturePaddings
        end local 14 // java.lang.String[] encryptionPaddings
        end local 13 // java.lang.String[] digests
        end local 12 // int purposes
        end local 11 // java.util.Date keyValidityForConsumptionEnd
        end local 10 // java.util.Date keyValidityForOriginationEnd
        end local 9 // java.util.Date keyValidityStart
        end local 8 // java.util.Date certificateNotAfter
        end local 7 // java.util.Date certificateNotBefore
        end local 6 // java.math.BigInteger certificateSerialNumber
        end local 5 // javax.security.auth.x500.X500Principal certificateSubject
        end local 4 // java.security.spec.AlgorithmParameterSpec spec
        end local 3 // int keySize
        end local 2 // int uid
        end local 1 // java.lang.String keyStoreAlias
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot                                       Name  Signature
            0   43     0                                       this  Landroid/security/keystore/KeyGenParameterSpec;
            0   43     1                              keyStoreAlias  Ljava/lang/String;
            0   43     2                                        uid  I
            0   43     3                                    keySize  I
            0   43     4                                       spec  Ljava/security/spec/AlgorithmParameterSpec;
            0   43     5                         certificateSubject  Ljavax/security/auth/x500/X500Principal;
            0   43     6                    certificateSerialNumber  Ljava/math/BigInteger;
            0   43     7                       certificateNotBefore  Ljava/util/Date;
            0   43     8                        certificateNotAfter  Ljava/util/Date;
            0   43     9                           keyValidityStart  Ljava/util/Date;
            0   43    10               keyValidityForOriginationEnd  Ljava/util/Date;
            0   43    11               keyValidityForConsumptionEnd  Ljava/util/Date;
            0   43    12                                   purposes  I
            0   43    13                                    digests  [Ljava/lang/String;
            0   43    14                         encryptionPaddings  [Ljava/lang/String;
            0   43    15                          signaturePaddings  [Ljava/lang/String;
            0   43    16                                 blockModes  [Ljava/lang/String;
            0   43    17               randomizedEncryptionRequired  Z
            0   43    18                 userAuthenticationRequired  Z
            0   43    19  userAuthenticationValidityDurationSeconds  I
            0   43    20                       userPresenceRequired  Z
            0   43    21                       attestationChallenge  [B
            0   43    22                           uniqueIdIncluded  Z
            0   43    23         userAuthenticationValidWhileOnBody  Z
            0   43    24           invalidatedByBiometricEnrollment  Z
            0   43    25                          isStrongBoxBacked  Z
            0   43    26                   userConfirmationRequired  Z
            0   43    27                     unlockedDeviceRequired  Z
    MethodParameters:
                                           Name  Flags
      keyStoreAlias                              
      uid                                        
      keySize                                    
      spec                                       
      certificateSubject                         
      certificateSerialNumber                    
      certificateNotBefore                       
      certificateNotAfter                        
      keyValidityStart                           
      keyValidityForOriginationEnd               
      keyValidityForConsumptionEnd               
      purposes                                   
      digests                                    
      encryptionPaddings                         
      signaturePaddings                          
      blockModes                                 
      randomizedEncryptionRequired               
      userAuthenticationRequired                 
      userAuthenticationValidityDurationSeconds  
      userPresenceRequired                       
      attestationChallenge                       
      uniqueIdIncluded                           
      userAuthenticationValidWhileOnBody         
      invalidatedByBiometricEnrollment           
      isStrongBoxBacked                          
      userConfirmationRequired                   
      unlockedDeviceRequired                     

  public java.lang.String getKeystoreAlias();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 365
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mKeystoreAlias:Ljava/lang/String;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public int getUid();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 375
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUid:I
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public int getKeySize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 384
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mKeySize:I
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
    descriptor: ()Ljava/security/spec/AlgorithmParameterSpec;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 393
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mSpec:Ljava/security/spec/AlgorithmParameterSpec;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public javax.security.auth.x500.X500Principal getCertificateSubject();
    descriptor: ()Ljavax/security/auth/x500/X500Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 402
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mCertificateSubject:Ljavax/security/auth/x500/X500Principal;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.math.BigInteger getCertificateSerialNumber();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 411
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mCertificateSerialNumber:Ljava/math/BigInteger;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.util.Date getCertificateNotBefore();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 420
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mCertificateNotBefore:Ljava/util/Date;
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.util.Date getCertificateNotAfter();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 429
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mCertificateNotAfter:Ljava/util/Date;
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.util.Date getKeyValidityStart();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 438
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mKeyValidityStart:Ljava/util/Date;
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.util.Date getKeyValidityForConsumptionEnd();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 447
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mKeyValidityForConsumptionEnd:Ljava/util/Date;
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.util.Date getKeyValidityForOriginationEnd();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 456
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mKeyValidityForOriginationEnd:Ljava/util/Date;
            invokestatic android.security.keystore.Utils.cloneIfNotNull:(Ljava/util/Date;)Ljava/util/Date;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public int getPurposes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 466
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mPurposes:I
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.lang.String[] getDigests();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 481
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mDigests:[Ljava/lang/String;
            ifnonnull 2
         1: .line 482
            new java.lang.IllegalStateException
            dup
            ldc "Digests not specified"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mDigests:[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isDigestsSpecified();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 495
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mDigests:[Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.lang.String[] getEncryptionPaddings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 508
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mEncryptionPaddings:[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.lang.String[] getSignaturePaddings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 520
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mSignaturePaddings:[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public java.lang.String[] getBlockModes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 532
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mBlockModes:[Ljava/lang/String;
            invokestatic android.security.keystore.ArrayUtils.cloneIfNotEmpty:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isRandomizedEncryptionRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 545
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mRandomizedEncryptionRequired:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUserAuthenticationRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 559
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationRequired:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUserConfirmationRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 579
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUserConfirmationRequired:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public int getUserAuthenticationValidityDurationSeconds();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 597
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationValidityDurationSeconds:I
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUserPresenceRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 613
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUserPresenceRequired:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public byte[] getAttestationChallenge();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 640
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mAttestationChallenge:[B
            invokestatic android.security.keystore.Utils.cloneIfNotNull:([B)[B
            areturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUniqueIdIncluded();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 649
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUniqueIdIncluded:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUserAuthenticationValidWhileOnBody();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 666
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUserAuthenticationValidWhileOnBody:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isInvalidatedByBiometricEnrollment();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 679
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mInvalidatedByBiometricEnrollment:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isStrongBoxBacked();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 686
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mIsStrongBoxBacked:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public boolean isUnlockedDeviceRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 697
            aload 0 /* this */
            getfield android.security.keystore.KeyGenParameterSpec.mUnlockedDeviceRequired:Z
            ireturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;

  public long getBoundToSpecificSecureUserId();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.security.keystore.KeyGenParameterSpec this
         0: .line 704
            lconst_0
            lreturn
        end local 0 // android.security.keystore.KeyGenParameterSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/security/keystore/KeyGenParameterSpec;
}
SourceFile: "KeyGenParameterSpec.java"
NestMembers:
  android.security.keystore.KeyGenParameterSpec$Builder
InnerClasses:
  public final Builder = android.security.keystore.KeyGenParameterSpec$Builder of android.security.keystore.KeyGenParameterSpec