public abstract class sun.security.provider.AbstractHashDrbg extends sun.security.provider.AbstractDrbg
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.provider.AbstractHashDrbg
  super_class: sun.security.provider.AbstractDrbg
{
  protected int outLen;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int seedLen;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.provider.AbstractHashDrbg this
         0: .line 34
            aload 0 /* this */
            invokespecial sun.security.provider.AbstractDrbg.<init>:()V
            return
        end local 0 // sun.security.provider.AbstractHashDrbg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/provider/AbstractHashDrbg;

  private static int alg2strength(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String algorithm
         0: .line 40
            aload 0 /* algorithm */
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 6
          -1523887821: 1
          -1523887726: 2
          -1523886674: 3
          -1523884971: 4
            752961850: 5
            752961945: 6
              default: 9
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "SHA-224"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 9
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "SHA-256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 9
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "SHA-384"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "SHA-512"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 9
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "SHA-512/224"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 9
      StackMap locals:
      StackMap stack:
         6: aload 1
            ldc "SHA-512/256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 9
         7: .line 43
      StackMap locals:
      StackMap stack:
            sipush 192
            ireturn
         8: .line 48
      StackMap locals:
      StackMap stack:
            sipush 256
            ireturn
         9: .line 50
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* algorithm */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 51
            ldc " not supported in Hash_DBRG"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 50
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0  algorithm  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      algorithm  

  protected void chooseAlgorithmAndStrength();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.security.provider.AbstractHashDrbg this
         0: .line 56
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedAlgorithm:Ljava/lang/String;
            ifnull 18
         1: .line 57
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedAlgorithm:Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
         2: .line 58
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
            invokestatic sun.security.provider.AbstractHashDrbg.alg2strength:(Ljava/lang/String;)I
            istore 1 /* supportedStrength */
        start local 1 // int supportedStrength
         3: .line 59
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedInstantiationSecurityStrength:I
            iflt 13
         4: .line 61
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedInstantiationSecurityStrength:I
         5: .line 60
            invokestatic sun.security.provider.AbstractHashDrbg.getStandardStrength:(I)I
            istore 2 /* tryStrength */
        start local 2 // int tryStrength
         6: .line 62
            iload 2 /* tryStrength */
            iload 1 /* supportedStrength */
            if_icmple 11
         7: .line 63
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 64
            ldc " does not support strength "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 65
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedInstantiationSecurityStrength:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 63
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 67
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* tryStrength */
            putfield sun.security.provider.AbstractHashDrbg.securityStrength:I
        end local 2 // int tryStrength
        12: .line 68
            goto 25
        13: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 128
            iload 1 /* supportedStrength */
            if_icmple 15
        14: .line 70
            iload 1 /* supportedStrength */
            goto 16
      StackMap locals:
      StackMap stack: sun.security.provider.AbstractHashDrbg
        15: sipush 128
        16: .line 69
      StackMap locals: sun.security.provider.AbstractHashDrbg int
      StackMap stack: sun.security.provider.AbstractHashDrbg int
            putfield sun.security.provider.AbstractHashDrbg.securityStrength:I
        end local 1 // int supportedStrength
        17: .line 72
            goto 25
        18: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedInstantiationSecurityStrength:I
            ifge 20
        19: .line 74
            sipush 128
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.requestedInstantiationSecurityStrength:I
        21: .line 73
      StackMap locals:
      StackMap stack: int
            istore 1 /* tryStrength */
        start local 1 // int tryStrength
        22: .line 75
            iload 1 /* tryStrength */
            invokestatic sun.security.provider.AbstractHashDrbg.getStandardStrength:(I)I
            istore 1 /* tryStrength */
        23: .line 78
            aload 0 /* this */
            ldc "SHA-256"
            putfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
        24: .line 79
            aload 0 /* this */
            iload 1 /* tryStrength */
            putfield sun.security.provider.AbstractHashDrbg.securityStrength:I
        end local 1 // int tryStrength
        25: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 6
          -1523887821: 26
          -1523887726: 27
          -1523886674: 28
          -1523884971: 29
            752961850: 30
            752961945: 31
              default: 44
          }
      StackMap locals: java.lang.String
      StackMap stack:
        26: aload 1
            ldc "SHA-224"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
            goto 44
      StackMap locals:
      StackMap stack:
        27: aload 1
            ldc "SHA-256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 44
      StackMap locals:
      StackMap stack:
        28: aload 1
            ldc "SHA-384"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
            goto 44
      StackMap locals:
      StackMap stack:
        29: aload 1
            ldc "SHA-512"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 44
      StackMap locals:
      StackMap stack:
        30: aload 1
            ldc "SHA-512/224"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
            goto 44
      StackMap locals:
      StackMap stack:
        31: aload 1
            ldc "SHA-512/256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 44
        32: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 55
            putfield sun.security.provider.AbstractHashDrbg.seedLen:I
        33: .line 85
            aload 0 /* this */
            bipush 28
            putfield sun.security.provider.AbstractHashDrbg.outLen:I
        34: .line 86
            goto 47
        35: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 55
            putfield sun.security.provider.AbstractHashDrbg.seedLen:I
        36: .line 90
            aload 0 /* this */
            bipush 32
            putfield sun.security.provider.AbstractHashDrbg.outLen:I
        37: .line 91
            goto 47
        38: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 111
            putfield sun.security.provider.AbstractHashDrbg.seedLen:I
        39: .line 94
            aload 0 /* this */
            bipush 48
            putfield sun.security.provider.AbstractHashDrbg.outLen:I
        40: .line 95
            goto 47
        41: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 111
            putfield sun.security.provider.AbstractHashDrbg.seedLen:I
        42: .line 98
            aload 0 /* this */
            bipush 64
            putfield sun.security.provider.AbstractHashDrbg.outLen:I
        43: .line 99
            goto 47
        44: .line 101
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.algorithm:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        45: .line 102
            ldc " not supported in Hash_DBRG"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 101
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.securityStrength:I
            bipush 8
            idiv
            putfield sun.security.provider.AbstractHashDrbg.minLength:I
        48: .line 105
            return
        end local 0 // sun.security.provider.AbstractHashDrbg this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   49     0               this  Lsun/security/provider/AbstractHashDrbg;
            3   17     1  supportedStrength  I
            6   12     2        tryStrength  I
           22   25     1        tryStrength  I

  public void instantiateAlgorithm(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.provider.AbstractHashDrbg this
        start local 1 // byte[] entropy
         0: .line 109
            getstatic sun.security.provider.AbstractHashDrbg.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 110
            getstatic sun.security.provider.AbstractHashDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            ldc "instantiate"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 117
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* inputs */
        start local 2 // java.util.List inputs
         3: .line 118
            aload 2 /* inputs */
            aload 1 /* entropy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 119
            aload 2 /* inputs */
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.nonce:[B
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 120
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.personalizationString:[B
            ifnull 7
         6: .line 121
            aload 2 /* inputs */
            aload 0 /* this */
            getfield sun.security.provider.AbstractHashDrbg.personalizationString:[B
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 123
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 2 /* inputs */
            invokevirtual sun.security.provider.AbstractHashDrbg.hashReseedInternal:(Ljava/util/List;)V
         8: .line 124
            return
        end local 2 // java.util.List inputs
        end local 1 // byte[] entropy
        end local 0 // sun.security.provider.AbstractHashDrbg this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lsun/security/provider/AbstractHashDrbg;
            0    9     1  entropy  [B
            3    9     2   inputs  Ljava/util/List<[B>;
    MethodParameters:
         Name  Flags
      entropy  

  protected void reseedAlgorithm(byte[], byte[]);
    descriptor: ([B[B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.security.provider.AbstractHashDrbg this
        start local 1 // byte[] ei
        start local 2 // byte[] additionalInput
         0: .line 130
            getstatic sun.security.provider.AbstractHashDrbg.debug:Lsun/security/util/Debug;
            ifnull 7
         1: .line 131
            getstatic sun.security.provider.AbstractHashDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "reseedAlgorithm\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 132
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            aload 1 /* ei */
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 133
            aload 2 /* additionalInput */
            ifnonnull 4
            ldc ""
            goto 5
         4: .line 134
      StackMap locals: sun.security.provider.AbstractHashDrbg byte[] byte[]
      StackMap stack: sun.security.util.Debug sun.security.provider.AbstractHashDrbg java.lang.StringBuilder
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            aload 2 /* additionalInput */
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
         5: .line 133
      StackMap locals: sun.security.provider.AbstractHashDrbg byte[] byte[]
      StackMap stack: sun.security.util.Debug sun.security.provider.AbstractHashDrbg java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 131
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         7: .line 141
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* inputs */
        start local 3 // java.util.List inputs
         8: .line 142
            aload 3 /* inputs */
            aload 1 /* ei */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 143
            aload 2 /* additionalInput */
            ifnull 11
        10: .line 144
            aload 3 /* inputs */
            aload 2 /* additionalInput */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 146
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 3 /* inputs */
            invokevirtual sun.security.provider.AbstractHashDrbg.hashReseedInternal:(Ljava/util/List;)V
        12: .line 147
            return
        end local 3 // java.util.List inputs
        end local 2 // byte[] additionalInput
        end local 1 // byte[] ei
        end local 0 // sun.security.provider.AbstractHashDrbg this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lsun/security/provider/AbstractHashDrbg;
            0   13     1               ei  [B
            0   13     2  additionalInput  [B
            8   13     3           inputs  Ljava/util/List<[B>;
    MethodParameters:
                 Name  Flags
      ei               
      additionalInput  

  protected abstract void hashReseedInternal(java.util.List<byte[]>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Ljava/util/List<[B>;)V
    MethodParameters:
        Name  Flags
      inputs  
}
SourceFile: "AbstractHashDrbg.java"