public abstract class sun.security.mscapi.CPublicKey extends sun.security.mscapi.CKey implements java.security.PublicKey
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.mscapi.CPublicKey
  super_class: sun.security.mscapi.CKey
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2289561342425825391

  protected byte[] encoding;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  static sun.security.mscapi.CPublicKey of(java.lang.String, long, long, int);
    descriptor: (Ljava/lang/String;JJI)Lsun/security/mscapi/CPublicKey;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // java.lang.String alg
        start local 1 // long hCryptProv
        start local 3 // long hCryptKey
        start local 5 // int keyLength
         0: .line 187
            aload 0 /* alg */
            new sun.security.mscapi.CKey$NativeHandles
            dup
            lload 1 /* hCryptProv */
            lload 3 /* hCryptKey */
            invokespecial sun.security.mscapi.CKey$NativeHandles.<init>:(JJ)V
            iload 5 /* keyLength */
            invokestatic sun.security.mscapi.CPublicKey.of:(Ljava/lang/String;Lsun/security/mscapi/CKey$NativeHandles;I)Lsun/security/mscapi/CPublicKey;
            areturn
        end local 5 // int keyLength
        end local 3 // long hCryptKey
        end local 1 // long hCryptProv
        end local 0 // java.lang.String alg
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0         alg  Ljava/lang/String;
            0    1     1  hCryptProv  J
            0    1     3   hCryptKey  J
            0    1     5   keyLength  I
    MethodParameters:
            Name  Flags
      alg         
      hCryptProv  
      hCryptKey   
      keyLength   

  public static sun.security.mscapi.CPublicKey of(java.lang.String, sun.security.mscapi.CKey$NativeHandles, int);
    descriptor: (Ljava/lang/String;Lsun/security/mscapi/CKey$NativeHandles;I)Lsun/security/mscapi/CPublicKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.String alg
        start local 1 // sun.security.mscapi.CKey$NativeHandles handles
        start local 2 // int keyLength
         0: .line 192
            aload 0 /* alg */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
                 2206: 1
                81440: 2
              default: 5
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 3
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 5
      StackMap locals:
      StackMap stack:
         2: aload 3
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 5
         3: .line 194
      StackMap locals:
      StackMap stack:
            new sun.security.mscapi.CPublicKey$CRSAPublicKey
            dup
            aload 1 /* handles */
            iload 2 /* keyLength */
            invokespecial sun.security.mscapi.CPublicKey$CRSAPublicKey.<init>:(Lsun/security/mscapi/CKey$NativeHandles;I)V
            areturn
         4: .line 196
      StackMap locals:
      StackMap stack:
            new sun.security.mscapi.CPublicKey$CECPublicKey
            dup
            aload 1 /* handles */
            iload 2 /* keyLength */
            invokespecial sun.security.mscapi.CPublicKey$CECPublicKey.<init>:(Lsun/security/mscapi/CKey$NativeHandles;I)V
            areturn
         5: .line 198
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* alg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // int keyLength
        end local 1 // sun.security.mscapi.CKey$NativeHandles handles
        end local 0 // java.lang.String alg
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0        alg  Ljava/lang/String;
            0    6     1    handles  Lsun/security/mscapi/CKey$NativeHandles;
            0    6     2  keyLength  I
    MethodParameters:
           Name  Flags
      alg        
      handles    
      keyLength  

  protected void <init>(java.lang.String, sun.security.mscapi.CKey$NativeHandles, int);
    descriptor: (Ljava/lang/String;Lsun/security/mscapi/CKey$NativeHandles;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.security.mscapi.CPublicKey this
        start local 1 // java.lang.String alg
        start local 2 // sun.security.mscapi.CKey$NativeHandles handles
        start local 3 // int keyLength
         0: .line 204
            aload 0 /* this */
            aload 1 /* alg */
            aload 2 /* handles */
            iload 3 /* keyLength */
            invokespecial sun.security.mscapi.CKey.<init>:(Ljava/lang/String;Lsun/security/mscapi/CKey$NativeHandles;I)V
         1: .line 55
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CPublicKey.encoding:[B
         2: .line 205
            return
        end local 3 // int keyLength
        end local 2 // sun.security.mscapi.CKey$NativeHandles handles
        end local 1 // java.lang.String alg
        end local 0 // sun.security.mscapi.CPublicKey this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lsun/security/mscapi/CPublicKey;
            0    3     1        alg  Ljava/lang/String;
            0    3     2    handles  Lsun/security/mscapi/CKey$NativeHandles;
            0    3     3  keyLength  I
    MethodParameters:
           Name  Flags
      alg        
      handles    
      keyLength  

  public java.lang.String getFormat();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.mscapi.CPublicKey this
         0: .line 209
            ldc "X.509"
            areturn
        end local 0 // sun.security.mscapi.CPublicKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/mscapi/CPublicKey;

  protected java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.security.mscapi.CPublicKey this
         0: .line 213
            new java.security.KeyRep
            dup
            getstatic java.security.KeyRep$Type.PUBLIC:Ljava/security/KeyRep$Type;
         1: .line 214
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CPublicKey.getAlgorithm:()Ljava/lang/String;
         2: .line 215
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CPublicKey.getFormat:()Ljava/lang/String;
         3: .line 216
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CPublicKey.getEncoded:()[B
         4: .line 213
            invokespecial java.security.KeyRep.<init>:(Ljava/security/KeyRep$Type;Ljava/lang/String;Ljava/lang/String;[B)V
            areturn
        end local 0 // sun.security.mscapi.CPublicKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/mscapi/CPublicKey;
    Exceptions:
      throws java.io.ObjectStreamException

  native byte[] getPublicKeyBlob(long, long);
    descriptor: (JJ)[B
    flags: (0x0100) ACC_NATIVE
    Exceptions:
      throws java.security.KeyException
    MethodParameters:
            Name  Flags
      hCryptProv  
      hCryptKey   

  public long getHCryptKey();
    descriptor: ()J
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.mscapi.CKey.getHCryptKey:()J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public int length();
    descriptor: ()I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.mscapi.CKey.length:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String getAlgorithm();
    descriptor: ()Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.mscapi.CKey.getAlgorithm:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public long getHCryptProvider();
    descriptor: ()J
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.mscapi.CKey.getHCryptProvider:()J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "CPublicKey.java"
NestMembers:
  sun.security.mscapi.CPublicKey$CECPublicKey  sun.security.mscapi.CPublicKey$CRSAPublicKey
InnerClasses:
  public final Type = java.security.KeyRep$Type of java.security.KeyRep
  NativeHandles = sun.security.mscapi.CKey$NativeHandles of sun.security.mscapi.CKey
  public CECPublicKey = sun.security.mscapi.CPublicKey$CECPublicKey of sun.security.mscapi.CPublicKey
  public CRSAPublicKey = sun.security.mscapi.CPublicKey$CRSAPublicKey of sun.security.mscapi.CPublicKey