final class sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage extends sun.security.ssl.SSLHandshake$HandshakeMessage
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage
  super_class: sun.security.ssl.SSLHandshake$HandshakeMessage
{
  private static final byte CURVE_NAMED_CURVE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private final sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup;
    descriptor: Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final java.security.interfaces.ECPublicKey publicKey;
    descriptor: Ljava/security/interfaces/ECPublicKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final sun.security.ssl.SignatureScheme signatureScheme;
    descriptor: Lsun/security/ssl/SignatureScheme;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 92
            aload 0 /* this */
            aload 1 /* handshakeContext */
            invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
         1: .line 96
            aload 1 /* handshakeContext */
            checkcast sun.security.ssl.ServerHandshakeContext
         2: .line 95
            astore 2 /* shc */
        start local 2 // sun.security.ssl.ServerHandshakeContext shc
         3: .line 98
            aconst_null
            astore 3 /* ecdhePossession */
        start local 3 // sun.security.ssl.ECDHKeyExchange$ECDHEPossession ecdhePossession
         4: .line 99
            aconst_null
            astore 4 /* x509Possession */
        start local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
         5: .line 100
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SSLPossession
            astore 5 /* possession */
        start local 5 // sun.security.ssl.SSLPossession possession
         7: .line 101
            aload 5 /* possession */
            instanceof sun.security.ssl.ECDHKeyExchange$ECDHEPossession
            ifeq 11
         8: .line 102
            aload 5 /* possession */
            checkcast sun.security.ssl.ECDHKeyExchange$ECDHEPossession
            astore 3 /* ecdhePossession */
         9: .line 103
            aload 4 /* x509Possession */
            ifnull 15
        10: .line 104
            goto 16
        11: .line 106
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession sun.security.ssl.SSLPossession java.util.Iterator
      StackMap stack:
            aload 5 /* possession */
            instanceof sun.security.ssl.X509Authentication$X509Possession
            ifeq 15
        12: .line 107
            aload 5 /* possession */
            checkcast sun.security.ssl.X509Authentication$X509Possession
            astore 4 /* x509Possession */
        13: .line 108
            aload 3 /* ecdhePossession */
            ifnull 15
        14: .line 109
            goto 16
        end local 5 // sun.security.ssl.SSLPossession possession
        15: .line 100
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        16: .line 114
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession
      StackMap stack:
            aload 3 /* ecdhePossession */
            ifnonnull 20
        17: .line 116
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        18: .line 117
            ldc "No ECDHE credentials negotiated for server key exchange"
        19: .line 116
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        20: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* ecdhePossession */
            getfield sun.security.ssl.ECDHKeyExchange$ECDHEPossession.publicKey:Ljava/security/interfaces/ECPublicKey;
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
        21: .line 121
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            astore 5 /* params */
        start local 5 // java.security.spec.ECParameterSpec params
        22: .line 122
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
            invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
            astore 6 /* point */
        start local 6 // java.security.spec.ECPoint point
        23: .line 123
            aload 0 /* this */
            aload 6 /* point */
            aload 5 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokestatic sun.security.ssl.JsseJce.encodePoint:(Ljava/security/spec/ECPoint;Ljava/security/spec/EllipticCurve;)[B
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
        24: .line 125
            aload 0 /* this */
            aload 5 /* params */
            invokestatic sun.security.ssl.SupportedGroupsExtension$NamedGroup.valueOf:(Ljava/security/spec/ECParameterSpec;)Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
        25: .line 126
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            ifnull 26
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
            ifnonnull 29
        26: .line 128
      StackMap locals: java.security.spec.ECParameterSpec java.security.spec.ECPoint
      StackMap stack:
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        27: .line 129
            new java.lang.StringBuilder
            dup
            ldc "Unnamed EC parameter spec: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* params */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 128
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        29: .line 132
      StackMap locals:
      StackMap stack:
            aload 4 /* x509Possession */
            ifnonnull 34
        30: .line 134
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
        31: .line 135
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        32: .line 136
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
        33: .line 137
            goto 89
        34: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        35: .line 139
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
        36: .line 138
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
        37: .line 140
            aconst_null
            astore 7 /* signer */
        start local 7 // java.security.Signature signer
        38: .line 141
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 62
        39: .line 142
            aload 0 /* this */
        40: .line 143
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
        41: .line 144
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
        42: .line 145
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
        43: .line 142
            invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/util/List;Ljava/security/PrivateKey;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        44: .line 146
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            ifnonnull 51
        45: .line 149
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        46: .line 150
            new java.lang.StringBuilder
            dup
            ldc "No preferred signature algorithm for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        47: .line 151
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 152
            ldc "  key"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 150
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 149
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        51: .line 155
      StackMap locals: java.security.Signature
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        52: .line 156
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
        53: .line 155
            invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
            astore 7 /* signer */
        54: .line 157
            goto 74
        55: .line 158
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 8 /* nsae */
        start local 8 // java.security.GeneralSecurityException nsae
        56: .line 159
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        57: .line 160
            new java.lang.StringBuilder
            dup
            ldc "Unsupported signature algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        58: .line 161
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        59: .line 160
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        60: .line 161
            aload 8 /* nsae */
        61: .line 159
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.security.GeneralSecurityException nsae
        62: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        63: .line 167
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
        64: .line 168
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
        65: .line 166
            invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
            astore 7 /* signer */
        66: .line 169
            goto 74
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        67: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
        68: .line 170
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        69: .line 171
            new java.lang.StringBuilder
            dup
            ldc "Unsupported signature algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        70: .line 172
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        71: .line 171
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        72: .line 172
            aload 8 /* e */
        73: .line 170
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.security.GeneralSecurityException e
        74: .line 176
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* signature */
        start local 8 // byte[] signature
        75: .line 178
            aload 7 /* signer */
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.randomBytes:[B
        76: .line 179
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.randomBytes:[B
        77: .line 180
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
        78: .line 178
            invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
        79: .line 181
            aload 7 /* signer */
            invokevirtual java.security.Signature.sign:()[B
            astore 8 /* signature */
        80: .line 182
            goto 88
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession java.security.spec.ECParameterSpec java.security.spec.ECPoint java.security.Signature byte[]
      StackMap stack: java.security.SignatureException
        81: astore 9 /* ex */
        start local 9 // java.security.SignatureException ex
        82: .line 183
            aload 2 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        83: .line 184
            new java.lang.StringBuilder
            dup
            ldc "Failed to sign ecdhe parameters: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        84: .line 185
            aload 4 /* x509Possession */
            getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        85: .line 184
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        86: .line 185
            aload 9 /* ex */
        87: .line 183
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 9 // java.security.SignatureException ex
        88: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* signature */
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
        end local 8 // byte[] signature
        end local 7 // java.security.Signature signer
        89: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.security.spec.ECPoint point
        end local 5 // java.security.spec.ECParameterSpec params
        end local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
        end local 3 // sun.security.ssl.ECDHKeyExchange$ECDHEPossession ecdhePossession
        end local 2 // sun.security.ssl.ServerHandshakeContext shc
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   90     0              this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
            0   90     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            3   90     2               shc  Lsun/security/ssl/ServerHandshakeContext;
            4   90     3   ecdhePossession  Lsun/security/ssl/ECDHKeyExchange$ECDHEPossession;
            5   90     4    x509Possession  Lsun/security/ssl/X509Authentication$X509Possession;
            7   15     5        possession  Lsun/security/ssl/SSLPossession;
           22   90     5            params  Ljava/security/spec/ECParameterSpec;
           23   90     6             point  Ljava/security/spec/ECPoint;
           38   89     7            signer  Ljava/security/Signature;
           56   62     8              nsae  Ljava/security/GeneralSecurityException;
           68   74     8                 e  Ljava/security/GeneralSecurityException;
           75   89     8         signature  [B
           82   88     9                ex  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
          51    54      55  Class java.security.NoSuchAlgorithmException
          51    54      55  Class java.security.InvalidKeyException
          51    54      55  Class java.security.InvalidAlgorithmParameterException
          63    66      67  Class java.security.NoSuchAlgorithmException
          63    66      67  Class java.security.InvalidKeyException
          75    80      81  Class java.security.SignatureException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      handshakeContext  

  void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
    descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
        start local 2 // java.nio.ByteBuffer m
         0: .line 193
            aload 0 /* this */
            aload 1 /* handshakeContext */
            invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
         1: .line 197
            aload 1 /* handshakeContext */
            checkcast sun.security.ssl.ClientHandshakeContext
         2: .line 196
            astore 3 /* chc */
        start local 3 // sun.security.ssl.ClientHandshakeContext chc
         3: .line 199
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getInt8:(Ljava/nio/ByteBuffer;)I
            i2b
            istore 4 /* curveType */
        start local 4 // byte curveType
         4: .line 200
            iload 4 /* curveType */
            iconst_3
            if_icmpeq 8
         5: .line 202
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
         6: .line 203
            new java.lang.StringBuilder
            dup
            ldc "Unsupported ECCurveType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* curveType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 202
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         8: .line 206
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int
      StackMap stack:
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
            istore 5 /* namedGroupId */
        start local 5 // int namedGroupId
         9: .line 207
            aload 0 /* this */
            iload 5 /* namedGroupId */
            invokestatic sun.security.ssl.SupportedGroupsExtension$NamedGroup.valueOf:(I)Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
        10: .line 208
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            ifnonnull 14
        11: .line 209
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        12: .line 210
            new java.lang.StringBuilder
            dup
            ldc "Unknown named group ID: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* namedGroupId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 209
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        14: .line 213
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokestatic sun.security.ssl.SupportedGroupsExtension$SupportedGroups.isSupported:(Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Z
            ifne 18
        15: .line 214
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        16: .line 215
            new java.lang.StringBuilder
            dup
            ldc "Unsupported named group: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 214
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        18: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
            ifnonnull 22
        19: .line 219
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        20: .line 220
            new java.lang.StringBuilder
            dup
            ldc "Unknown named EC curve: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 219
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        22: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
            invokestatic sun.security.ssl.JsseJce.getECParameterSpec:(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
        23: .line 223
            astore 6 /* parameters */
        start local 6 // java.security.spec.ECParameterSpec parameters
        24: .line 225
            aload 6 /* parameters */
            ifnonnull 28
        25: .line 226
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        26: .line 227
            new java.lang.StringBuilder
            dup
            ldc "No supported EC parameter: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 226
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        28: .line 230
      StackMap locals: java.security.spec.ECParameterSpec
      StackMap stack:
            aload 0 /* this */
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getBytes8:(Ljava/nio/ByteBuffer;)[B
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
        29: .line 231
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            arraylength
            ifne 33
        30: .line 232
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        31: .line 233
            new java.lang.StringBuilder
            dup
            ldc "Insufficient ECPoint data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 232
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        33: .line 236
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* ecPublicKey */
        start local 7 // java.security.interfaces.ECPublicKey ecPublicKey
        34: .line 239
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            aload 6 /* parameters */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokestatic sun.security.ssl.JsseJce.decodePoint:([BLjava/security/spec/EllipticCurve;)Ljava/security/spec/ECPoint;
        35: .line 238
            astore 8 /* point */
        start local 8 // java.security.spec.ECPoint point
        36: .line 240
            ldc "EC"
            invokestatic sun.security.ssl.JsseJce.getKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 9 /* factory */
        start local 9 // java.security.KeyFactory factory
        37: .line 241
            aload 9 /* factory */
        38: .line 242
            new java.security.spec.ECPublicKeySpec
            dup
            aload 8 /* point */
            aload 6 /* parameters */
            invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
        39: .line 241
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            checkcast java.security.interfaces.ECPublicKey
            astore 7 /* ecPublicKey */
        end local 9 // java.security.KeyFactory factory
        end local 8 // java.security.spec.ECPoint point
        40: .line 243
            goto 45
        41: .line 244
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey
      StackMap stack: java.lang.Exception
            astore 8 /* ex */
        start local 8 // java.lang.Exception ex
        42: .line 245
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        43: .line 246
            new java.lang.StringBuilder
            dup
            ldc "Invalid ECPoint: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* ex */
        44: .line 245
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.lang.Exception ex
        45: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* ecPublicKey */
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
        46: .line 251
            aconst_null
            astore 8 /* x509Credentials */
        start local 8 // sun.security.ssl.X509Authentication$X509Credentials x509Credentials
        47: .line 252
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakeCredentials:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 52
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey sun.security.ssl.X509Authentication$X509Credentials top java.util.Iterator
      StackMap stack:
        48: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SSLCredentials
            astore 9 /* cd */
        start local 9 // sun.security.ssl.SSLCredentials cd
        49: .line 253
            aload 9 /* cd */
            instanceof sun.security.ssl.X509Authentication$X509Credentials
            ifeq 52
        50: .line 254
            aload 9 /* cd */
            checkcast sun.security.ssl.X509Authentication$X509Credentials
            astore 8 /* x509Credentials */
        51: .line 255
            goto 53
        end local 9 // sun.security.ssl.SSLCredentials cd
        52: .line 252
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        53: .line 259
      StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey sun.security.ssl.X509Authentication$X509Credentials
      StackMap stack:
            aload 8 /* x509Credentials */
            ifnonnull 62
        54: .line 261
            aload 2 /* m */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 58
        55: .line 262
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        56: .line 263
            ldc "Invalid DH ServerKeyExchange: unknown extra data"
        57: .line 262
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        58: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        59: .line 266
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
        60: .line 267
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
        61: .line 269
            return
        62: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        63: .line 273
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
        64: .line 272
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
        65: .line 274
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 81
        66: .line 275
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
            istore 9 /* ssid */
        start local 9 // int ssid
        67: .line 276
            aload 0 /* this */
            iload 9 /* ssid */
            invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        68: .line 277
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            ifnonnull 74
        69: .line 278
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        70: .line 279
            new java.lang.StringBuilder
            dup
            ldc "Invalid signature algorithm ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* ssid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        71: .line 280
            ldc ") used in ECDH ServerKeyExchange handshake message"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        72: .line 279
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 278
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        74: .line 283
      StackMap locals: int
      StackMap stack:
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 82
        75: .line 284
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        76: .line 285
            new java.lang.StringBuilder
            dup
            ldc "Unsupported signature algorithm ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        77: .line 286
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        78: .line 287
            ldc ") used in ECDH ServerKeyExchange handshake message"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        79: .line 285
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        80: .line 284
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        end local 9 // int ssid
        81: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        82: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
            putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
        83: .line 296
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 95
        84: .line 298
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
        85: .line 299
            aload 8 /* x509Credentials */
            getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
        86: .line 298
            invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
            astore 9 /* signer */
        start local 9 // java.security.Signature signer
        87: .line 300
            goto 106
        end local 9 // java.security.Signature signer
        88: .line 301
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 10 /* nsae */
        start local 10 // java.security.GeneralSecurityException nsae
        89: .line 302
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        90: .line 303
            new java.lang.StringBuilder
            dup
            ldc "Unsupported signature algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        91: .line 304
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        92: .line 303
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        93: .line 304
            aload 10 /* nsae */
        94: .line 302
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 10 // java.security.GeneralSecurityException nsae
        95: .line 309
      StackMap locals:
      StackMap stack:
            aload 8 /* x509Credentials */
            getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
        96: .line 310
            aload 8 /* x509Credentials */
            getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
        97: .line 308
            invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
            astore 9 /* signer */
        start local 9 // java.security.Signature signer
        98: .line 311
            goto 106
        end local 9 // java.security.Signature signer
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        99: astore 10 /* e */
        start local 10 // java.security.GeneralSecurityException e
       100: .line 312
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
       101: .line 313
            new java.lang.StringBuilder
            dup
            ldc "Unsupported signature algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       102: .line 314
            aload 8 /* x509Credentials */
            getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       103: .line 313
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       104: .line 314
            aload 10 /* e */
       105: .line 312
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 10 // java.security.GeneralSecurityException e
        start local 9 // java.security.Signature signer
       106: .line 319
      StackMap locals: java.security.Signature
      StackMap stack:
            aload 9 /* signer */
       107: .line 320
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.randomBytes:[B
       108: .line 321
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.randomBytes:[B
       109: .line 322
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
       110: .line 319
            invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
       111: .line 324
            aload 9 /* signer */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifne 119
       112: .line 325
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
       113: .line 326
            ldc "Invalid ECDH ServerKeyExchange signature"
       114: .line 325
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
       115: .line 328
      StackMap locals:
      StackMap stack: java.security.SignatureException
            astore 10 /* ex */
        start local 10 // java.security.SignatureException ex
       116: .line 329
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
       117: .line 330
            ldc "Cannot verify ECDH ServerKeyExchange signature"
            aload 10 /* ex */
       118: .line 329
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 10 // java.security.SignatureException ex
       119: .line 332
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.security.Signature signer
        end local 8 // sun.security.ssl.X509Authentication$X509Credentials x509Credentials
        end local 7 // java.security.interfaces.ECPublicKey ecPublicKey
        end local 6 // java.security.spec.ECParameterSpec parameters
        end local 5 // int namedGroupId
        end local 4 // byte curveType
        end local 3 // sun.security.ssl.ClientHandshakeContext chc
        end local 2 // java.nio.ByteBuffer m
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  120     0              this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
            0  120     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            0  120     2                 m  Ljava/nio/ByteBuffer;
            3  120     3               chc  Lsun/security/ssl/ClientHandshakeContext;
            4  120     4         curveType  B
            9  120     5      namedGroupId  I
           24  120     6        parameters  Ljava/security/spec/ECParameterSpec;
           34  120     7       ecPublicKey  Ljava/security/interfaces/ECPublicKey;
           36   40     8             point  Ljava/security/spec/ECPoint;
           37   40     9           factory  Ljava/security/KeyFactory;
           42   45     8                ex  Ljava/lang/Exception;
           47  120     8   x509Credentials  Lsun/security/ssl/X509Authentication$X509Credentials;
           49   52     9                cd  Lsun/security/ssl/SSLCredentials;
           67   81     9              ssid  I
           87   88     9            signer  Ljava/security/Signature;
           98   99     9            signer  Ljava/security/Signature;
          106  120     9            signer  Ljava/security/Signature;
           89   95    10              nsae  Ljava/security/GeneralSecurityException;
          100  106    10                 e  Ljava/security/GeneralSecurityException;
          116  119    10                ex  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
          34    40      41  Class java.security.NoSuchAlgorithmException
          34    40      41  Class java.security.spec.InvalidKeySpecException
          34    40      41  Class java.io.IOException
          84    87      88  Class java.security.NoSuchAlgorithmException
          84    87      88  Class java.security.InvalidKeyException
          84    87      88  Class java.security.InvalidAlgorithmParameterException
          95    98      99  Class java.security.NoSuchAlgorithmException
          95    98      99  Class java.security.InvalidKeyException
         106   115     115  Class java.security.SignatureException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      handshakeContext  
      m                 

  public sun.security.ssl.SSLHandshake handshakeType();
    descriptor: ()Lsun/security/ssl/SSLHandshake;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
         0: .line 336
            getstatic sun.security.ssl.SSLHandshake.SERVER_KEY_EXCHANGE:Lsun/security/ssl/SSLHandshake;
            areturn
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;

  public int messageLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
         0: .line 341
            iconst_0
            istore 1 /* sigLen */
        start local 1 // int sigLen
         1: .line 342
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            ifnull 5
         2: .line 343
            iconst_2
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            arraylength
            iadd
            istore 1 /* sigLen */
         3: .line 344
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 5
         4: .line 345
            iload 1 /* sigLen */
            invokestatic sun.security.ssl.SignatureScheme.sizeInRecord:()I
            iadd
            istore 1 /* sigLen */
         5: .line 349
      StackMap locals: int
      StackMap stack:
            iconst_4
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            arraylength
            iadd
            iload 1 /* sigLen */
            iadd
            ireturn
        end local 1 // int sigLen
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
            1    6     1  sigLen  I

  public void send(sun.security.ssl.HandshakeOutStream);
    descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
        start local 1 // sun.security.ssl.HandshakeOutStream hos
         0: .line 354
            aload 1 /* hos */
            iconst_3
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
         1: .line 355
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         2: .line 356
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
         3: .line 357
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            ifnull 7
         4: .line 358
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 6
         5: .line 359
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            getfield sun.security.ssl.SignatureScheme.id:I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         6: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
         7: .line 364
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.HandshakeOutStream hos
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
            0    8     1   hos  Lsun/security/ssl/HandshakeOutStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      hos   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
         0: .line 368
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
            ifeq 15
         1: .line 369
            new java.text.MessageFormat
            dup
         2: .line 370
            ldc "\"ECDH ServerKeyExchange\": '{'\n  \"parameters\": '{'\n    \"named group\": \"{0}\"\n    \"ecdh public\": '{'\n{1}\n    '}',\n  '}',\n  \"digital signature\":  '{'\n    \"signature algorithm\": \"{2}\"\n    \"signature\": '{'\n{3}\n    '}',\n  '}'\n'}'"
         3: .line 384
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
         4: .line 369
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* messageFormat */
        start local 1 // java.text.MessageFormat messageFormat
         5: .line 386
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            astore 2 /* hexEncoder */
        start local 2 // sun.security.util.HexDumpEncoder hexEncoder
         6: .line 387
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 388
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
            aastore
            dup
            iconst_1
         8: .line 390
            aload 2 /* hexEncoder */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            ldc "      "
         9: .line 389
            invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        10: .line 391
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
            getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
            aastore
            dup
            iconst_3
        11: .line 393
            aload 2 /* hexEncoder */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            ldc "      "
        12: .line 392
            invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
        13: .line 387
            astore 3 /* messageFields */
        start local 3 // java.lang.Object[] messageFields
        14: .line 395
            aload 1 /* messageFormat */
            aload 3 /* messageFields */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Object[] messageFields
        end local 2 // sun.security.util.HexDumpEncoder hexEncoder
        end local 1 // java.text.MessageFormat messageFormat
        15: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            ifnull 29
        16: .line 397
            new java.text.MessageFormat
            dup
        17: .line 398
            ldc "\"ECDH ServerKeyExchange\": '{'\n  \"parameters\":  '{'\n    \"named group\": \"{0}\"\n    \"ecdh public\": '{'\n{1}\n    '}',\n  '}',\n  \"signature\": '{'\n{2}\n  '}'\n'}'"
        18: .line 409
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
        19: .line 397
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* messageFormat */
        start local 1 // java.text.MessageFormat messageFormat
        20: .line 411
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            astore 2 /* hexEncoder */
        start local 2 // sun.security.util.HexDumpEncoder hexEncoder
        21: .line 412
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        22: .line 413
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
            aastore
            dup
            iconst_1
        23: .line 415
            aload 2 /* hexEncoder */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            ldc "      "
        24: .line 414
            invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        25: .line 417
            aload 2 /* hexEncoder */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            ldc "    "
        26: .line 416
            invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
        27: .line 412
            astore 3 /* messageFields */
        start local 3 // java.lang.Object[] messageFields
        28: .line 420
            aload 1 /* messageFormat */
            aload 3 /* messageFields */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Object[] messageFields
        end local 2 // sun.security.util.HexDumpEncoder hexEncoder
        end local 1 // java.text.MessageFormat messageFormat
        29: .line 422
      StackMap locals:
      StackMap stack:
            new java.text.MessageFormat
            dup
        30: .line 423
            ldc "\"ECDH ServerKeyExchange\": '{'\n  \"parameters\":  '{'\n    \"named group\": \"{0}\"\n    \"ecdh public\": '{'\n{1}\n    '}',\n  '}'\n'}'"
        31: .line 431
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
        32: .line 422
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* messageFormat */
        start local 1 // java.text.MessageFormat messageFormat
        33: .line 433
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            astore 2 /* hexEncoder */
        start local 2 // sun.security.util.HexDumpEncoder hexEncoder
        34: .line 434
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        35: .line 435
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
            getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
            aastore
            dup
            iconst_1
        36: .line 437
            aload 2 /* hexEncoder */
            aload 0 /* this */
            getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            ldc "      "
        37: .line 436
            invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
        38: .line 434
            astore 3 /* messageFields */
        start local 3 // java.lang.Object[] messageFields
        39: .line 440
            aload 1 /* messageFormat */
            aload 3 /* messageFields */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Object[] messageFields
        end local 2 // sun.security.util.HexDumpEncoder hexEncoder
        end local 1 // java.text.MessageFormat messageFormat
        end local 0 // sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   40     0           this  Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
            5   15     1  messageFormat  Ljava/text/MessageFormat;
            6   15     2     hexEncoder  Lsun/security/util/HexDumpEncoder;
           14   15     3  messageFields  [Ljava/lang/Object;
           20   29     1  messageFormat  Ljava/text/MessageFormat;
           21   29     2     hexEncoder  Lsun/security/util/HexDumpEncoder;
           28   29     3  messageFields  [Ljava/lang/Object;
           33   40     1  messageFormat  Ljava/text/MessageFormat;
           34   40     2     hexEncoder  Lsun/security/util/HexDumpEncoder;
           39   40     3  messageFields  [Ljava/lang/Object;

  private static java.security.Signature getSignature(java.lang.String, java.security.Key);
    descriptor: (Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.String keyAlgorithm
        start local 1 // java.security.Key key
         0: .line 446
            aconst_null
            astore 2 /* signer */
        start local 2 // java.security.Signature signer
         1: .line 447
            aload 0 /* keyAlgorithm */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
                 2206: 2
                81440: 3
              default: 8
          }
      StackMap locals: java.security.Signature java.lang.String
      StackMap stack:
         2: aload 3
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 8
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 8
         4: .line 449
      StackMap locals:
      StackMap stack:
            ldc "SHA1withECDSA"
            invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
            astore 2 /* signer */
         5: .line 450
            goto 11
         6: .line 452
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.RSASignature.getInstance:()Ljava/security/Signature;
            astore 2 /* signer */
         7: .line 453
            goto 11
         8: .line 455
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
         9: .line 456
            new java.lang.StringBuilder
            dup
            ldc "neither an RSA or a EC key : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* keyAlgorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 455
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 459
      StackMap locals:
      StackMap stack:
            aload 2 /* signer */
            ifnull 16
        12: .line 460
            aload 1 /* key */
            instanceof java.security.PublicKey
            ifeq 15
        13: .line 461
            aload 2 /* signer */
            aload 1 /* key */
            checkcast java.security.PublicKey
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        14: .line 462
            goto 16
        15: .line 463
      StackMap locals:
      StackMap stack:
            aload 2 /* signer */
            aload 1 /* key */
            checkcast java.security.PrivateKey
            invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
        16: .line 467
      StackMap locals:
      StackMap stack:
            aload 2 /* signer */
            areturn
        end local 2 // java.security.Signature signer
        end local 1 // java.security.Key key
        end local 0 // java.lang.String keyAlgorithm
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0  keyAlgorithm  Ljava/lang/String;
            0   17     1           key  Ljava/security/Key;
            1   17     2        signer  Ljava/security/Signature;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    MethodParameters:
              Name  Flags
      keyAlgorithm  
      key           

  private static void updateSignature(java.security.Signature, byte[], byte[], int, byte[]);
    descriptor: (Ljava/security/Signature;[B[BI[B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // java.security.Signature sig
        start local 1 // byte[] clntNonce
        start local 2 // byte[] svrNonce
        start local 3 // int namedGroupId
        start local 4 // byte[] publicPoint
         0: .line 473
            aload 0 /* sig */
            aload 1 /* clntNonce */
            invokevirtual java.security.Signature.update:([B)V
         1: .line 474
            aload 0 /* sig */
            aload 2 /* svrNonce */
            invokevirtual java.security.Signature.update:([B)V
         2: .line 476
            aload 0 /* sig */
            iconst_3
            invokevirtual java.security.Signature.update:(B)V
         3: .line 477
            aload 0 /* sig */
            iload 3 /* namedGroupId */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            invokevirtual java.security.Signature.update:(B)V
         4: .line 478
            aload 0 /* sig */
            iload 3 /* namedGroupId */
            sipush 255
            iand
            i2b
            invokevirtual java.security.Signature.update:(B)V
         5: .line 479
            aload 0 /* sig */
            aload 4 /* publicPoint */
            arraylength
            i2b
            invokevirtual java.security.Signature.update:(B)V
         6: .line 480
            aload 0 /* sig */
            aload 4 /* publicPoint */
            invokevirtual java.security.Signature.update:([B)V
         7: .line 481
            return
        end local 4 // byte[] publicPoint
        end local 3 // int namedGroupId
        end local 2 // byte[] svrNonce
        end local 1 // byte[] clntNonce
        end local 0 // java.security.Signature sig
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0           sig  Ljava/security/Signature;
            0    8     1     clntNonce  [B
            0    8     2      svrNonce  [B
            0    8     3  namedGroupId  I
            0    8     4   publicPoint  [B
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
              Name  Flags
      sig           
      clntNonce     
      svrNonce      
      namedGroupId  
      publicPoint   
}
SourceFile: "ECDHServerKeyExchange.java"
NestHost: sun.security.ssl.ECDHServerKeyExchange
InnerClasses:
  final ECDHEPossession = sun.security.ssl.ECDHKeyExchange$ECDHEPossession of sun.security.ssl.ECDHKeyExchange
  private final ECDHServerKeyExchangeMessage = sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage of sun.security.ssl.ECDHServerKeyExchange
  abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
  final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension
  SupportedGroups = sun.security.ssl.SupportedGroupsExtension$SupportedGroups of sun.security.ssl.SupportedGroupsExtension
  final X509Credentials = sun.security.ssl.X509Authentication$X509Credentials of sun.security.ssl.X509Authentication
  final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication