final class sun.security.ssl.SignatureAndHashAlgorithm
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SignatureAndHashAlgorithm
  super_class: java.lang.Object
{
  static final int SUPPORTED_ALG_PRIORITY_MAX_NUM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 240

  private static final java.util.Set<java.security.CryptoPrimitive> SIGNATURE_PRIMITIVE_SET;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/security/CryptoPrimitive;>;

  private static final java.util.Map<java.lang.Integer, sun.security.ssl.SignatureAndHashAlgorithm> supportedMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lsun/security/ssl/SignatureAndHashAlgorithm;>;

  private static final java.util.Map<java.lang.Integer, sun.security.ssl.SignatureAndHashAlgorithm> priorityMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lsun/security/ssl/SignatureAndHashAlgorithm;>;

  private sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm hash;
    descriptor: Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
    flags: (0x0002) ACC_PRIVATE

  private int id;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String algorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int priority;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 72
            getstatic java.security.CryptoPrimitive.SIGNATURE:Ljava/security/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
         1: .line 71
            putstatic sun.security.ssl.SignatureAndHashAlgorithm.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
         2: .line 400
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
         3: .line 399
            invokestatic java.util.Collections.synchronizedSortedMap:(Ljava/util/SortedMap;)Ljava/util/SortedMap;
            putstatic sun.security.ssl.SignatureAndHashAlgorithm.supportedMap:Ljava/util/Map;
         4: .line 402
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
         5: .line 401
            invokestatic java.util.Collections.synchronizedSortedMap:(Ljava/util/SortedMap;)Ljava/util/SortedMap;
            putstatic sun.security.ssl.SignatureAndHashAlgorithm.priorityMap:Ljava/util/Map;
         6: .line 404
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.supportedMap:Ljava/util/Map;
            dup
            astore 0
            monitorenter
         7: .line 405
            sipush 240
            istore 1 /* p */
        start local 1 // int p
         8: .line 406
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.MD5:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
         9: .line 407
            ldc "MD5withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        10: .line 406
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        11: .line 408
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        12: .line 409
            ldc "SHA1withDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        13: .line 408
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        14: .line 410
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        15: .line 411
            ldc "SHA1withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        16: .line 410
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        17: .line 412
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        18: .line 413
            ldc "SHA1withECDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        19: .line 412
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        20: .line 415
            ldc "SunMSCAPI"
            invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
            ifnonnull 30
        21: .line 416
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA224:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        22: .line 417
            ldc "SHA224withDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        23: .line 416
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        24: .line 418
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA224:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        25: .line 419
            ldc "SHA224withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        26: .line 418
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        27: .line 420
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA224:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        28: .line 421
            ldc "SHA224withECDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        29: .line 420
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        30: .line 424
      StackMap locals: java.util.Map int
      StackMap stack:
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA256:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        31: .line 425
            ldc "SHA256withDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        32: .line 424
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        33: .line 426
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA256:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        34: .line 427
            ldc "SHA256withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        35: .line 426
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        36: .line 428
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA256:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        37: .line 429
            ldc "SHA256withECDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        38: .line 428
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        39: .line 430
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA384:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        40: .line 431
            ldc "SHA384withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        41: .line 430
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        42: .line 432
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA384:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        43: .line 433
            ldc "SHA384withECDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        44: .line 432
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        45: .line 434
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA512:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        46: .line 435
            ldc "SHA512withRSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        47: .line 434
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        48: .line 436
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA512:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
        49: .line 437
            ldc "SHA512withECDSA"
            iinc 1 /* p */ -1
            iload 1 /* p */
        50: .line 436
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.supports:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
        end local 1 // int p
        51: .line 404
            aload 0
            monitorexit
        52: goto 55
      StackMap locals: java.util.Map
      StackMap stack: java.lang.Throwable
        53: aload 0
            monitorexit
        54: athrow
        55: .line 439
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            8   51     1     p  I
      Exception table:
        from    to  target  type
           7    52      53  any
          53    54      53  any

  private void <init>(sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm, sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
        start local 1 // sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm hash
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm signature
        start local 3 // java.lang.String algorithm
        start local 4 // int priority
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            aload 1 /* hash */
            putfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
         2: .line 97
            aload 0 /* this */
            aload 3 /* algorithm */
            putfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
         3: .line 98
            aload 0 /* this */
            aload 1 /* hash */
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
            sipush 255
            iand
            bipush 8
            ishl
            aload 2 /* signature */
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            sipush 255
            iand
            ior
            putfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
         4: .line 99
            aload 0 /* this */
            iload 4 /* priority */
            putfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
         5: .line 100
            return
        end local 4 // int priority
        end local 3 // java.lang.String algorithm
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm signature
        end local 1 // sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm hash
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/ssl/SignatureAndHashAlgorithm;
            0    6     1       hash  Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            0    6     2  signature  Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            0    6     3  algorithm  Ljava/lang/String;
            0    6     4   priority  I
    MethodParameters:
           Name  Flags
      hash       
      signature  
      algorithm  
      priority   

  private void <init>(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
        start local 1 // java.lang.String algorithm
        start local 2 // int id
        start local 3 // int sequence
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 104
            aload 0 /* this */
            iload 2 /* id */
            bipush 8
            ishr
            sipush 255
            iand
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.valueOf:(I)Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            putfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
         2: .line 105
            aload 0 /* this */
            aload 1 /* algorithm */
            putfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
         3: .line 106
            aload 0 /* this */
            iload 2 /* id */
            putfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
         4: .line 109
            aload 0 /* this */
            sipush 240
            iload 3 /* sequence */
            iadd
            iconst_1
            iadd
            putfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
         5: .line 110
            return
        end local 3 // int sequence
        end local 2 // int id
        end local 1 // java.lang.String algorithm
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/ssl/SignatureAndHashAlgorithm;
            0    6     1  algorithm  Ljava/lang/String;
            0    6     2         id  I
            0    6     3   sequence  I
    MethodParameters:
           Name  Flags
      algorithm  
      id         
      sequence   

  static sun.security.ssl.SignatureAndHashAlgorithm valueOf(int, int, int);
    descriptor: (III)Lsun/security/ssl/SignatureAndHashAlgorithm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // int hash
        start local 1 // int signature
        start local 2 // int sequence
         0: .line 117
            iload 0 /* hash */
            sipush 255
            iand
            istore 0 /* hash */
         1: .line 118
            iload 1 /* signature */
            sipush 255
            iand
            istore 1 /* signature */
         2: .line 120
            iload 0 /* hash */
            bipush 8
            ishl
            iload 1 /* signature */
            ior
            istore 3 /* id */
        start local 3 // int id
         3: .line 121
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.supportedMap:Ljava/util/Map;
            iload 3 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 4 /* signAlg */
        start local 4 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
         4: .line 122
            aload 4 /* signAlg */
            ifnonnull 11
         5: .line 124
            new sun.security.ssl.SignatureAndHashAlgorithm
            dup
         6: .line 125
            new java.lang.StringBuilder
            dup
            ldc "Unknown (hash:0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* hash */
            bipush 16
            invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 126
            ldc ", signature:0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* signature */
            bipush 16
            invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 125
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 127
            iload 3 /* id */
            iload 2 /* sequence */
        10: .line 124
            invokespecial sun.security.ssl.SignatureAndHashAlgorithm.<init>:(Ljava/lang/String;II)V
            astore 4 /* signAlg */
        11: .line 130
      StackMap locals: int sun.security.ssl.SignatureAndHashAlgorithm
      StackMap stack:
            aload 4 /* signAlg */
            areturn
        end local 4 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
        end local 3 // int id
        end local 2 // int sequence
        end local 1 // int signature
        end local 0 // int hash
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       hash  I
            0   12     1  signature  I
            0   12     2   sequence  I
            3   12     3         id  I
            4   12     4    signAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
    MethodParameters:
           Name  Flags
      hash       
      signature  
      sequence   

  int getHashValue();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
         0: .line 134
            aload 0 /* this */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
            bipush 8
            ishr
            sipush 255
            iand
            ireturn
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SignatureAndHashAlgorithm;

  int getSignatureValue();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
         0: .line 138
            aload 0 /* this */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
            sipush 255
            iand
            ireturn
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SignatureAndHashAlgorithm;

  java.lang.String getAlgorithmName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
         0: .line 142
            aload 0 /* this */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SignatureAndHashAlgorithm;

  static int sizeInRecord();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 147
            iconst_2
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm> getSupportedAlgorithms(java.security.AlgorithmConstraints);
    descriptor: (Ljava/security/AlgorithmConstraints;)Ljava/util/Collection;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.security.AlgorithmConstraints constraints
         0: .line 155
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* supported */
        start local 1 // java.util.Collection supported
         1: .line 156
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.priorityMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: java.security.AlgorithmConstraints java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 2 /* sigAlg */
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         3: .line 157
            aload 2 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
            sipush 240
            if_icmpgt 9
         4: .line 158
            aload 0 /* constraints */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
         5: .line 159
            aload 2 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
            aconst_null
         6: .line 158
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         7: .line 159
            ifeq 9
         8: .line 160
            aload 1 /* supported */
            aload 2 /* sigAlg */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         9: .line 156
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 164
            aload 1 /* supported */
            areturn
        end local 1 // java.util.Collection supported
        end local 0 // java.security.AlgorithmConstraints constraints
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0  constraints  Ljava/security/AlgorithmConstraints;
            1   11     1    supported  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            3    9     2       sigAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
    Signature: (Ljava/security/AlgorithmConstraints;)Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
    MethodParameters:
             Name  Flags
      constraints  

  static java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm> getSupportedAlgorithms(java.security.AlgorithmConstraints, java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>);
    descriptor: (Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.security.AlgorithmConstraints constraints
        start local 1 // java.util.Collection algorithms
         0: .line 171
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* supported */
        start local 2 // java.util.Collection supported
         1: .line 172
            aload 1 /* algorithms */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: java.security.AlgorithmConstraints java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 3 /* sigAlg */
        start local 3 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         3: .line 173
            aload 3 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
            sipush 240
            if_icmpgt 9
         4: .line 174
            aload 0 /* constraints */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
         5: .line 175
            aload 3 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
            aconst_null
         6: .line 174
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         7: .line 175
            ifeq 9
         8: .line 176
            aload 2 /* supported */
            aload 3 /* sigAlg */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         9: .line 172
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 180
            aload 2 /* supported */
            areturn
        end local 2 // java.util.Collection supported
        end local 1 // java.util.Collection algorithms
        end local 0 // java.security.AlgorithmConstraints constraints
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0  constraints  Ljava/security/AlgorithmConstraints;
            0   11     1   algorithms  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            1   11     2    supported  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            3    9     3       sigAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
    Signature: (Ljava/security/AlgorithmConstraints;Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;)Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
    MethodParameters:
             Name  Flags
      constraints  
      algorithms   

  static java.lang.String[] getAlgorithmNames(java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>);
    descriptor: (Ljava/util/Collection;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.Collection algorithms
         0: .line 185
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* algorithmNames */
        start local 1 // java.util.ArrayList algorithmNames
         1: .line 186
            aload 0 /* algorithms */
            ifnull 6
         2: .line 187
            aload 0 /* algorithms */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.Collection java.util.ArrayList top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 2 /* sigAlg */
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         4: .line 188
            aload 1 /* algorithmNames */
            aload 2 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.algorithm:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         5: .line 187
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 192
      StackMap locals: java.util.Collection java.util.ArrayList
      StackMap stack:
            aload 1 /* algorithmNames */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.String
            astore 2 /* array */
        start local 2 // java.lang.String[] array
         7: .line 193
            aload 1 /* algorithmNames */
            aload 2 /* array */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 2 // java.lang.String[] array
        end local 1 // java.util.ArrayList algorithmNames
        end local 0 // java.util.Collection algorithms
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0      algorithms  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            1    8     1  algorithmNames  Ljava/util/ArrayList<Ljava/lang/String;>;
            4    5     2          sigAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
            7    8     2           array  [Ljava/lang/String;
    Signature: (Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;)[Ljava/lang/String;
    MethodParameters:
            Name  Flags
      algorithms  

  static java.util.Set<java.lang.String> getHashAlgorithmNames(java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>);
    descriptor: (Ljava/util/Collection;)Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.Collection algorithms
         0: .line 198
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* algorithmNames */
        start local 1 // java.util.Set algorithmNames
         1: .line 199
            aload 0 /* algorithms */
            ifnull 7
         2: .line 200
            aload 0 /* algorithms */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.Collection java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 2 /* sigAlg */
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         4: .line 201
            aload 2 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
            ifle 6
         5: .line 202
            aload 1 /* algorithmNames */
            aload 2 /* sigAlg */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.standardName:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm sigAlg
         6: .line 200
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 207
      StackMap locals: java.util.Collection java.util.Set
      StackMap stack:
            aload 1 /* algorithmNames */
            areturn
        end local 1 // java.util.Set algorithmNames
        end local 0 // java.util.Collection algorithms
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0      algorithms  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            1    8     1  algorithmNames  Ljava/util/Set<Ljava/lang/String;>;
            4    6     2          sigAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
    Signature: (Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      algorithms  

  static java.lang.String getHashAlgorithmName(sun.security.ssl.SignatureAndHashAlgorithm);
    descriptor: (Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
         0: .line 211
            aload 0 /* algorithm */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.standardName:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  algorithm  Lsun/security/ssl/SignatureAndHashAlgorithm;
    MethodParameters:
           Name  Flags
      algorithm  

  private static void supports(sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm, sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm hash
        start local 1 // sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm signature
        start local 2 // java.lang.String algorithm
        start local 3 // int priority
         0: .line 218
            new sun.security.ssl.SignatureAndHashAlgorithm
            dup
            aload 0 /* hash */
            aload 1 /* signature */
            aload 2 /* algorithm */
            iload 3 /* priority */
            invokespecial sun.security.ssl.SignatureAndHashAlgorithm.<init>:(Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;Ljava/lang/String;I)V
         1: .line 217
            astore 4 /* pair */
        start local 4 // sun.security.ssl.SignatureAndHashAlgorithm pair
         2: .line 219
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.supportedMap:Ljava/util/Map;
            aload 4 /* pair */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* pair */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 8
         3: .line 220
            new java.lang.RuntimeException
            dup
         4: .line 221
            new java.lang.StringBuilder
            dup
            ldc "Duplicate SignatureAndHashAlgorithm definition, id: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 222
            aload 4 /* pair */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 221
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 220
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 224
      StackMap locals: sun.security.ssl.SignatureAndHashAlgorithm
      StackMap stack:
            getstatic sun.security.ssl.SignatureAndHashAlgorithm.priorityMap:Ljava/util/Map;
            aload 4 /* pair */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* pair */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 14
         9: .line 225
            new java.lang.RuntimeException
            dup
        10: .line 226
            new java.lang.StringBuilder
            dup
            ldc "Duplicate SignatureAndHashAlgorithm definition, priority: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 227
            aload 4 /* pair */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        12: .line 226
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 225
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.security.ssl.SignatureAndHashAlgorithm pair
        end local 3 // int priority
        end local 2 // java.lang.String algorithm
        end local 1 // sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm signature
        end local 0 // sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm hash
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       hash  Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            0   15     1  signature  Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            0   15     2  algorithm  Ljava/lang/String;
            0   15     3   priority  I
            2   15     4       pair  Lsun/security/ssl/SignatureAndHashAlgorithm;
    MethodParameters:
           Name  Flags
      hash       
      signature  
      algorithm  
      priority   

  static sun.security.ssl.SignatureAndHashAlgorithm getPreferableAlgorithm(java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>, java.lang.String);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.Collection algorithms
        start local 1 // java.lang.String expected
         0: .line 235
            aload 0 /* algorithms */
            aload 1 /* expected */
            aconst_null
         1: .line 234
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
            areturn
        end local 1 // java.lang.String expected
        end local 0 // java.util.Collection algorithms
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  algorithms  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            0    2     1    expected  Ljava/lang/String;
    Signature: (Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
    MethodParameters:
            Name  Flags
      algorithms  
      expected    

  static sun.security.ssl.SignatureAndHashAlgorithm getPreferableAlgorithm(java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>, java.lang.String, java.security.PrivateKey);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // java.util.Collection algorithms
        start local 1 // java.lang.String expected
        start local 2 // java.security.PrivateKey signingKey
         0: .line 242
            aload 2 /* signingKey */
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getMaxDigestLength:(Ljava/security/PrivateKey;)I
            istore 3 /* maxDigestLength */
        start local 3 // int maxDigestLength
         1: .line 243
            aload 0 /* algorithms */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: java.util.Collection java.lang.String java.security.PrivateKey int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureAndHashAlgorithm
            astore 4 /* algorithm */
        start local 4 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
         3: .line 244
            aload 4 /* algorithm */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.id:I
            sipush 255
            iand
            istore 6 /* signValue */
        start local 6 // int signValue
         4: .line 245
            aload 1 /* expected */
            ifnull 13
         5: .line 246
            aload 1 /* expected */
            ldc "rsa"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 247
            iload 6 /* signValue */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            if_icmpeq 13
         7: .line 248
      StackMap locals: java.util.Collection java.lang.String java.security.PrivateKey int sun.security.ssl.SignatureAndHashAlgorithm java.util.Iterator int
      StackMap stack:
            aload 1 /* expected */
            ldc "dsa"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 249
            iload 6 /* signValue */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            if_icmpeq 13
         9: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* expected */
            ldc "ecdsa"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 251
            iload 6 /* signValue */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            if_icmpeq 13
        11: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* expected */
            ldc "ec"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 16
        12: .line 253
            iload 6 /* signValue */
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            if_icmpne 16
        13: .line 255
      StackMap locals:
      StackMap stack:
            aload 4 /* algorithm */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.priority:I
            sipush 240
            if_icmpgt 16
        14: .line 256
            aload 4 /* algorithm */
            getfield sun.security.ssl.SignatureAndHashAlgorithm.hash:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.length:I
            iload 3 /* maxDigestLength */
            if_icmpgt 16
        15: .line 258
            aload 4 /* algorithm */
            areturn
        end local 6 // int signValue
        end local 4 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
        16: .line 243
      StackMap locals: java.util.Collection java.lang.String java.security.PrivateKey int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 263
            aconst_null
            areturn
        end local 3 // int maxDigestLength
        end local 2 // java.security.PrivateKey signingKey
        end local 1 // java.lang.String expected
        end local 0 // java.util.Collection algorithms
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0       algorithms  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
            0   18     1         expected  Ljava/lang/String;
            0   18     2       signingKey  Ljava/security/PrivateKey;
            1   18     3  maxDigestLength  I
            3   16     4        algorithm  Lsun/security/ssl/SignatureAndHashAlgorithm;
            4   16     6        signValue  I
    Signature: (Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
    MethodParameters:
            Name  Flags
      algorithms  
      expected    
      signingKey  

  private static int getMaxDigestLength(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.security.PrivateKey signingKey
         0: .line 270
            ldc 2147483647
            istore 1 /* maxDigestLength */
        start local 1 // int maxDigestLength
         1: .line 273
            aload 0 /* signingKey */
            ifnull 12
         2: .line 274
            ldc "rsa"
            aload 0 /* signingKey */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
         3: .line 291
            aload 0 /* signingKey */
            invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
            istore 2 /* keySize */
        start local 2 // int keySize
         4: .line 292
            iload 2 /* keySize */
            sipush 768
            if_icmplt 7
         5: .line 293
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA512:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.length:I
            istore 1 /* maxDigestLength */
         6: .line 294
            goto 12
      StackMap locals: int int
      StackMap stack:
         7: iload 2 /* keySize */
            sipush 512
            if_icmplt 10
            iload 2 /* keySize */
            sipush 768
            if_icmpge 10
         8: .line 295
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA256:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.length:I
            istore 1 /* maxDigestLength */
         9: .line 296
            goto 12
      StackMap locals:
      StackMap stack:
        10: iload 2 /* keySize */
            ifle 12
            iload 2 /* keySize */
            sipush 512
            if_icmpge 12
        11: .line 297
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.length:I
            istore 1 /* maxDigestLength */
        end local 2 // int keySize
        12: .line 302
      StackMap locals:
      StackMap stack:
            iload 1 /* maxDigestLength */
            ireturn
        end local 1 // int maxDigestLength
        end local 0 // java.security.PrivateKey signingKey
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0       signingKey  Ljava/security/PrivateKey;
            1   13     1  maxDigestLength  I
            4   12     2          keySize  I
    MethodParameters:
            Name  Flags
      signingKey  
}
SourceFile: "SignatureAndHashAlgorithm.java"
NestMembers:
  sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm  sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm
InnerClasses:
  final HashAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm
  final SignatureAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm