class sun.security.mscapi.SunMSCAPI$ProviderService extends java.security.Provider$Service
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.mscapi.SunMSCAPI$ProviderService
  super_class: java.security.Provider$Service
{
  void <init>(java.security.Provider, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.security.Provider p
        start local 2 // java.lang.String type
        start local 3 // java.lang.String algo
        start local 4 // java.lang.String cn
         0: .line 69
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* type */
            aload 3 /* algo */
            aload 4 /* cn */
            aconst_null
            aconst_null
            invokespecial java.security.Provider$Service.<init>:(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V
         1: .line 70
            return
        end local 4 // java.lang.String cn
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.security.Provider p
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0    2     1     p  Ljava/security/Provider;
            0    2     2  type  Ljava/lang/String;
            0    2     3  algo  Ljava/lang/String;
            0    2     4    cn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      p     
      type  
      algo  
      cn    

  void <init>(java.security.Provider, java.lang.String, java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.HashMap<java.lang.String, java.lang.String>);
    descriptor: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/HashMap;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.security.Provider p
        start local 2 // java.lang.String type
        start local 3 // java.lang.String algo
        start local 4 // java.lang.String cn
        start local 5 // java.util.List aliases
        start local 6 // java.util.HashMap attrs
         0: .line 74
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* type */
            aload 3 /* algo */
            aload 4 /* cn */
            aload 5 /* aliases */
            aload 6 /* attrs */
            invokespecial java.security.Provider$Service.<init>:(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V
         1: .line 75
            return
        end local 6 // java.util.HashMap attrs
        end local 5 // java.util.List aliases
        end local 4 // java.lang.String cn
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.security.Provider p
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0    2     1        p  Ljava/security/Provider;
            0    2     2     type  Ljava/lang/String;
            0    2     3     algo  Ljava/lang/String;
            0    2     4       cn  Ljava/lang/String;
            0    2     5  aliases  Ljava/util/List<Ljava/lang/String;>;
            0    2     6    attrs  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      p        
      type     
      algo     
      cn       
      aliases  
      attrs    

  public java.lang.Object newInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.lang.Object ctrParamObj
         0: .line 80
            aload 0 /* this */
            invokevirtual sun.security.mscapi.SunMSCAPI$ProviderService.getType:()Ljava/lang/String;
            astore 2 /* type */
        start local 2 // java.lang.String type
         1: .line 81
            aload 1 /* ctrParamObj */
            ifnull 7
         2: .line 82
            new java.security.InvalidParameterException
            dup
         3: .line 83
            new java.lang.StringBuilder
            dup
            ldc "constructorParameter not used with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 84
            ldc " engines"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 83
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 82
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 86
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.mscapi.SunMSCAPI$ProviderService.getAlgorithm:()Ljava/lang/String;
            astore 3 /* algo */
        start local 3 // java.lang.String algo
         8: .line 88
            aload 2 /* type */
            ldc "SecureRandom"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         9: .line 89
            aload 3 /* algo */
            ldc "Windows-PRNG"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        10: .line 90
            new sun.security.mscapi.PRNG
            dup
            invokespecial sun.security.mscapi.PRNG.<init>:()V
        11: areturn
        12: .line 92
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* type */
            ldc "KeyStore"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        13: .line 93
            aload 3 /* algo */
            ldc "Windows-MY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 94
            new sun.security.mscapi.CKeyStore$MY
            dup
            invokespecial sun.security.mscapi.CKeyStore$MY.<init>:()V
        15: areturn
        16: .line 95
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "Windows-ROOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        17: .line 96
            new sun.security.mscapi.CKeyStore$ROOT
            dup
            invokespecial sun.security.mscapi.CKeyStore$ROOT.<init>:()V
        18: areturn
        19: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Signature"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 59
        20: .line 99
            aload 3 /* algo */
            ldc "NONEwithRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 100
            new sun.security.mscapi.CSignature$NONEwithRSA
            dup
            invokespecial sun.security.mscapi.CSignature$NONEwithRSA.<init>:()V
        22: areturn
        23: .line 101
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA1withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 102
            new sun.security.mscapi.CSignature$SHA1withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA1withRSA.<init>:()V
        25: areturn
        26: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA256withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 104
            new sun.security.mscapi.CSignature$SHA256withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA256withRSA.<init>:()V
        28: areturn
        29: .line 105
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA384withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 106
            new sun.security.mscapi.CSignature$SHA384withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA384withRSA.<init>:()V
        31: areturn
        32: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA512withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 108
            new sun.security.mscapi.CSignature$SHA512withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA512withRSA.<init>:()V
        34: areturn
        35: .line 109
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD5withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        36: .line 110
            new sun.security.mscapi.CSignature$MD5withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$MD5withRSA.<init>:()V
        37: areturn
        38: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD2withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        39: .line 112
            new sun.security.mscapi.CSignature$MD2withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$MD2withRSA.<init>:()V
        40: areturn
        41: .line 113
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "RSASSA-PSS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 114
            new sun.security.mscapi.CSignature$PSS
            dup
            invokespecial sun.security.mscapi.CSignature$PSS.<init>:()V
        43: areturn
        44: .line 115
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA1withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        45: .line 116
            new sun.security.mscapi.CSignature$SHA1withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA1withECDSA.<init>:()V
        46: areturn
        47: .line 117
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA224withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        48: .line 118
            new sun.security.mscapi.CSignature$SHA224withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA224withECDSA.<init>:()V
        49: areturn
        50: .line 119
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA256withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        51: .line 120
            new sun.security.mscapi.CSignature$SHA256withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA256withECDSA.<init>:()V
        52: areturn
        53: .line 121
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA384withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 56
        54: .line 122
            new sun.security.mscapi.CSignature$SHA384withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA384withECDSA.<init>:()V
        55: areturn
        56: .line 123
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA512withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        57: .line 124
            new sun.security.mscapi.CSignature$SHA512withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA512withECDSA.<init>:()V
        58: areturn
        59: .line 126
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "KeyPairGenerator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 63
        60: .line 127
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        61: .line 128
            new sun.security.mscapi.CKeyPairGenerator$RSA
            dup
            invokespecial sun.security.mscapi.CKeyPairGenerator$RSA.<init>:()V
        62: areturn
        63: .line 130
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Cipher"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        64: .line 131
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 66
        65: .line 132
            aload 3 /* algo */
            ldc "RSA/ECB/PKCS1Padding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        66: .line 133
      StackMap locals:
      StackMap stack:
            new sun.security.mscapi.CRSACipher
            dup
            invokespecial sun.security.mscapi.CRSACipher.<init>:()V
        67: areturn
        68: .line 136
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        69: .line 137
            new java.security.NoSuchAlgorithmException
            dup
        70: .line 138
            new java.lang.StringBuilder
            dup
            ldc "Error constructing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        71: .line 139
            aload 3 /* algo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " using SunMSCAPI"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        72: .line 138
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 139
            aload 4 /* ex */
        74: .line 137
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception ex
        75: .line 141
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No impl for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        76: .line 142
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        77: .line 141
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.lang.Object ctrParamObj
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   78     0         this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0   78     1  ctrParamObj  Ljava/lang/Object;
            1   78     2         type  Ljava/lang/String;
            8   78     3         algo  Ljava/lang/String;
           69   75     4           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    11      68  Class java.lang.Exception
          12    15      68  Class java.lang.Exception
          16    18      68  Class java.lang.Exception
          19    22      68  Class java.lang.Exception
          23    25      68  Class java.lang.Exception
          26    28      68  Class java.lang.Exception
          29    31      68  Class java.lang.Exception
          32    34      68  Class java.lang.Exception
          35    37      68  Class java.lang.Exception
          38    40      68  Class java.lang.Exception
          41    43      68  Class java.lang.Exception
          44    46      68  Class java.lang.Exception
          47    49      68  Class java.lang.Exception
          50    52      68  Class java.lang.Exception
          53    55      68  Class java.lang.Exception
          56    58      68  Class java.lang.Exception
          59    62      68  Class java.lang.Exception
          63    67      68  Class java.lang.Exception
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
             Name  Flags
      ctrParamObj  
}
SourceFile: "SunMSCAPI.java"
NestHost: sun.security.mscapi.SunMSCAPI
InnerClasses:
  public Service = java.security.Provider$Service of java.security.Provider
  public RSA = sun.security.mscapi.CKeyPairGenerator$RSA of sun.security.mscapi.CKeyPairGenerator
  public final MY = sun.security.mscapi.CKeyStore$MY of sun.security.mscapi.CKeyStore
  public final ROOT = sun.security.mscapi.CKeyStore$ROOT of sun.security.mscapi.CKeyStore
  public final MD2withRSA = sun.security.mscapi.CSignature$MD2withRSA of sun.security.mscapi.CSignature
  public final MD5withRSA = sun.security.mscapi.CSignature$MD5withRSA of sun.security.mscapi.CSignature
  public final NONEwithRSA = sun.security.mscapi.CSignature$NONEwithRSA of sun.security.mscapi.CSignature
  public final PSS = sun.security.mscapi.CSignature$PSS of sun.security.mscapi.CSignature
  public final SHA1withECDSA = sun.security.mscapi.CSignature$SHA1withECDSA of sun.security.mscapi.CSignature
  public final SHA1withRSA = sun.security.mscapi.CSignature$SHA1withRSA of sun.security.mscapi.CSignature
  public final SHA224withECDSA = sun.security.mscapi.CSignature$SHA224withECDSA of sun.security.mscapi.CSignature
  public final SHA256withECDSA = sun.security.mscapi.CSignature$SHA256withECDSA of sun.security.mscapi.CSignature
  public final SHA256withRSA = sun.security.mscapi.CSignature$SHA256withRSA of sun.security.mscapi.CSignature
  public final SHA384withECDSA = sun.security.mscapi.CSignature$SHA384withECDSA of sun.security.mscapi.CSignature
  public final SHA384withRSA = sun.security.mscapi.CSignature$SHA384withRSA of sun.security.mscapi.CSignature
  public final SHA512withECDSA = sun.security.mscapi.CSignature$SHA512withECDSA of sun.security.mscapi.CSignature
  public final SHA512withRSA = sun.security.mscapi.CSignature$SHA512withRSA of sun.security.mscapi.CSignature
  private ProviderService = sun.security.mscapi.SunMSCAPI$ProviderService of sun.security.mscapi.SunMSCAPI