abstract class sun.security.mscapi.CKey implements java.security.Key, sun.security.util.Length
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.mscapi.CKey
super_class: java.lang.Object
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1088859394025049194
protected final sun.security.mscapi.CKey$NativeHandles handles;
descriptor: Lsun/security/mscapi/CKey$NativeHandles;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int keyLength;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
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=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.mscapi.CKey.algorithm:Ljava/lang/String;
2: aload 0
aload 2
putfield sun.security.mscapi.CKey.handles:Lsun/security/mscapi/CKey$NativeHandles;
3: aload 0
iload 3
putfield sun.security.mscapi.CKey.keyLength:I
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/mscapi/CKey;
0 5 1 algorithm Ljava/lang/String;
0 5 2 handles Lsun/security/mscapi/CKey$NativeHandles;
0 5 3 keyLength I
MethodParameters:
Name Flags
algorithm
handles
keyLength
private static native void cleanUp(long, long);
descriptor: (JJ)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
hCryptProv
hCryptKey
public int length();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.mscapi.CKey.keyLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/mscapi/CKey;
public long getHCryptKey();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.mscapi.CKey.handles:Lsun/security/mscapi/CKey$NativeHandles;
getfield sun.security.mscapi.CKey$NativeHandles.hCryptKey:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/mscapi/CKey;
public long getHCryptProvider();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.mscapi.CKey.handles:Lsun/security/mscapi/CKey$NativeHandles;
getfield sun.security.mscapi.CKey$NativeHandles.hCryptProv:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/mscapi/CKey;
public java.lang.String getAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.mscapi.CKey.algorithm:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/mscapi/CKey;
protected static native java.lang.String getContainerName(long);
descriptor: (J)Ljava/lang/String;
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
hCryptProv
protected static native java.lang.String getKeyType(long);
descriptor: (J)Ljava/lang/String;
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
hCryptKey
static byte[] generateECBlob(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=10, args_size=1
start local 0 0: aload 0
invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
istore 1
start local 1 1: iload 1
bipush 7
iadd
bipush 8
idiv
istore 2
start local 2 2: aload 0
instanceof java.security.interfaces.ECPrivateKey
istore 3
start local 3 3: bipush 8
iload 2
iload 3
ifeq 4
iconst_3
goto 5
StackMap locals: java.security.Key int int int
StackMap stack: int int
4: iconst_2
StackMap locals: java.security.Key int int int
StackMap stack: int int int
5: imul
iadd
newarray 8
astore 4
start local 4 6: aload 4
iconst_0
bipush 69
bastore
7: aload 4
iconst_1
bipush 67
bastore
8: aload 4
iconst_2
bipush 83
bastore
9: iload 3
ifeq 16
10: aload 4
iconst_3
iload 1
sipush 256
if_icmpne 11
bipush 50
goto 13
11: StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int
iload 1
sipush 384
if_icmpne 12
bipush 52
goto 13
StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int
12: bipush 54
StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int int
13: i2b
14: bastore
15: goto 21
16: StackMap locals:
StackMap stack:
aload 4
iconst_3
iload 1
sipush 256
if_icmpne 17
bipush 49
goto 19
17: StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int
iload 1
sipush 384
if_icmpne 18
bipush 51
goto 19
StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int
18: bipush 53
StackMap locals: java.security.Key int int int byte[]
StackMap stack: byte[] int int
19: i2b
20: bastore
21: StackMap locals:
StackMap stack:
iload 3
ifeq 30
22: aload 0
checkcast java.security.interfaces.ECPrivateKey
astore 7
start local 7 23: aload 7
invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
astore 8
start local 8 24: aload 8
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 9
start local 9 25: aload 9
iconst_0
26: aload 4
bipush 8
iload 2
iadd
iload 2
iadd
iload 2
iadd
aload 9
arraylength
isub
27: aload 9
arraylength
28: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 9 end local 8 end local 7 29: goto 39
30: StackMap locals:
StackMap stack:
aload 0
checkcast java.security.interfaces.ECPublicKey
astore 7
start local 7 31: aload 7
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
invokevirtual java.security.spec.ECPoint.getAffineX:()Ljava/math/BigInteger;
astore 5
start local 5 32: aload 7
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
invokevirtual java.security.spec.ECPoint.getAffineY:()Ljava/math/BigInteger;
astore 6
start local 6 33: aload 6
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 8
start local 8 34: aload 8
iconst_0
aload 4
bipush 8
iload 2
iadd
iload 2
iadd
aload 8
arraylength
isub
35: aload 8
arraylength
36: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: aload 5
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 9
start local 9 38: aload 9
iconst_0
aload 4
bipush 8
iload 2
iadd
aload 9
arraylength
isub
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 9 end local 8 end local 7 end local 6 end local 5 39: StackMap locals:
StackMap stack:
aload 4
iconst_4
iload 2
i2b
bastore
40: aload 4
iconst_5
aload 4
bipush 6
aload 4
bipush 7
iconst_0
dup_x2
bastore
dup_x2
bastore
bastore
41: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 k Ljava/security/Key;
1 42 1 keyBitLength I
2 42 2 keyLen I
3 42 3 isPrivate Z
6 42 4 keyBlob [B
32 39 5 x Ljava/math/BigInteger;
33 39 6 y Ljava/math/BigInteger;
23 29 7 prk Ljava/security/interfaces/ECPrivateKey;
24 29 8 s Ljava/math/BigInteger;
25 29 9 bs [B
31 39 7 puk Ljava/security/interfaces/ECPublicKey;
34 39 8 by [B
38 39 9 bx [B
MethodParameters:
Name Flags
k
}
SourceFile: "CKey.java"
NestMembers:
sun.security.mscapi.CKey$NativeHandles
InnerClasses:
NativeHandles = sun.security.mscapi.CKey$NativeHandles of sun.security.mscapi.CKey