public final class io.vertx.ext.auth.impl.jose.JWS
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.vertx.ext.auth.impl.jose.JWS
super_class: java.lang.Object
{
public static final java.lang.String ES256;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ES256"
public static final java.lang.String ES384;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ES384"
public static final java.lang.String ES512;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ES512"
public static final java.lang.String PS256;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "PS256"
public static final java.lang.String PS384;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "PS384"
public static final java.lang.String PS512;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "PS512"
public static final java.lang.String ES256K;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ES256K"
public static final java.lang.String RS256;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RS256"
public static final java.lang.String RS384;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RS384"
public static final java.lang.String RS512;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RS512"
public static final java.lang.String RS1;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RS1"
private static final java.security.cert.CertificateFactory X509;
descriptor: Ljava/security/cert/CertificateFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
putstatic io.vertx.ext.auth.impl.jose.JWS.X509:Ljava/security/cert/CertificateFactory;
1: goto 4
StackMap locals:
StackMap stack: java.security.cert.CertificateException
2: astore 0
start local 0 3: new java.lang.RuntimeException
dup
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 4: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
3 4 0 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
0 1 2 Class java.security.cert.CertificateException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWS;
public static java.security.Signature getSignature(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/Signature;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=3, args_size=1
start local 0 0: aload 0
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 11
81424: 1
66245349: 2
66246401: 3
66248104: 4
76404080: 5
76405132: 6
76406835: 7
78251122: 8
78252174: 9
78253877: 10
2053605894: 11
default: 28
}
StackMap locals: java.lang.String top java.lang.String
StackMap stack:
1: aload 2
ldc "RS1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 28
StackMap locals:
StackMap stack:
2: aload 2
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 28
StackMap locals:
StackMap stack:
3: aload 2
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 28
StackMap locals:
StackMap stack:
4: aload 2
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 28
StackMap locals:
StackMap stack:
5: aload 2
ldc "PS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
goto 28
StackMap locals:
StackMap stack:
6: aload 2
ldc "PS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 22
goto 28
StackMap locals:
StackMap stack:
7: aload 2
ldc "PS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
goto 28
StackMap locals:
StackMap stack:
8: aload 2
ldc "RS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 28
StackMap locals:
StackMap stack:
9: aload 2
ldc "RS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 28
StackMap locals:
StackMap stack:
10: aload 2
ldc "RS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 28
StackMap locals:
StackMap stack:
11: aload 2
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 28
12: StackMap locals:
StackMap stack:
ldc "SHA256withECDSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
13: StackMap locals:
StackMap stack:
ldc "SHA384withECDSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
14: StackMap locals:
StackMap stack:
ldc "SHA512withECDSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
15: StackMap locals:
StackMap stack:
ldc "SHA256withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
16: StackMap locals:
StackMap stack:
ldc "SHA384withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
17: StackMap locals:
StackMap stack:
ldc "SHA512withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
18: StackMap locals:
StackMap stack:
ldc "SHA1withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
areturn
19: StackMap locals:
StackMap stack:
ldc "RSASSA-PSS"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 1
start local 1 20: aload 1
new java.security.spec.PSSParameterSpec
dup
ldc "SHA-256"
ldc "MGF1"
getstatic java.security.spec.MGF1ParameterSpec.SHA256:Ljava/security/spec/MGF1ParameterSpec;
bipush 32
iconst_1
invokespecial java.security.spec.PSSParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V
invokevirtual java.security.Signature.setParameter:(Ljava/security/spec/AlgorithmParameterSpec;)V
21: aload 1
areturn
end local 1 22: StackMap locals:
StackMap stack:
ldc "RSASSA-PSS"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 1
start local 1 23: aload 1
new java.security.spec.PSSParameterSpec
dup
ldc "SHA-384"
ldc "MGF1"
getstatic java.security.spec.MGF1ParameterSpec.SHA384:Ljava/security/spec/MGF1ParameterSpec;
bipush 48
iconst_1
invokespecial java.security.spec.PSSParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V
invokevirtual java.security.Signature.setParameter:(Ljava/security/spec/AlgorithmParameterSpec;)V
24: aload 1
areturn
end local 1 25: StackMap locals:
StackMap stack:
ldc "RSASSA-PSS"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 1
start local 1 26: aload 1
new java.security.spec.PSSParameterSpec
dup
ldc "SHA-512"
ldc "MGF1"
getstatic java.security.spec.MGF1ParameterSpec.SHA512:Ljava/security/spec/MGF1ParameterSpec;
bipush 64
iconst_1
invokespecial java.security.spec.PSSParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V
invokevirtual java.security.Signature.setParameter:(Ljava/security/spec/AlgorithmParameterSpec;)V
27: aload 1
areturn
end local 1 28: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
invokespecial java.security.NoSuchAlgorithmException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 alg Ljava/lang/String;
20 22 1 sig Ljava/security/Signature;
23 25 1 sig Ljava/security/Signature;
26 28 1 sig Ljava/security/Signature;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
alg
public static boolean verifySignature(java.lang.String, java.security.cert.X509Certificate, byte[], byte[]);
descriptor: (Ljava/lang/String;Ljava/security/cert/X509Certificate;[B[B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
ifnull 1
aload 1
ifnull 1
aload 2
ifnull 1
aload 3
ifnonnull 2
1: StackMap locals:
StackMap stack:
new java.security.SignatureException
dup
ldc "Cannot validate signature, one of {alg, certificate, signature, data} is null"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
66245349: 3
66246401: 4
66248104: 5
2053605894: 6
default: 9
}
StackMap locals: java.lang.String
StackMap stack:
3: aload 4
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 9
StackMap locals:
StackMap stack:
4: aload 4
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 9
StackMap locals:
StackMap stack:
5: aload 4
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 9
StackMap locals:
StackMap stack:
6: aload 4
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 9
7: StackMap locals:
StackMap stack:
aload 2
invokestatic io.vertx.ext.auth.impl.jose.JWS.isASN1:([B)Z
ifne 9
8: aload 2
invokestatic io.vertx.ext.auth.impl.jose.JWS.toASN1:([B)[B
astore 2
9: StackMap locals:
StackMap stack:
aload 0
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 5
start local 5 10: aload 5
aload 1
invokevirtual java.security.Signature.initVerify:(Ljava/security/cert/Certificate;)V
11: aload 5
aload 3
invokevirtual java.security.Signature.update:([B)V
12: aload 5
aload 2
invokevirtual java.security.Signature.verify:([B)Z
ireturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 alg Ljava/lang/String;
0 13 1 certificate Ljava/security/cert/X509Certificate;
0 13 2 signature [B
0 13 3 data [B
10 13 5 sig Ljava/security/Signature;
Exceptions:
throws java.security.InvalidKeyException, java.security.SignatureException, java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
alg
certificate
signature
data
public static int getSignatureLength(java.lang.String, java.security.PublicKey);
descriptor: (Ljava/lang/String;Ljava/security/PublicKey;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.interfaces.RSAKey
ifeq 2
1: aload 1
checkcast java.security.interfaces.RSAKey
invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
bipush 7
iadd
iconst_3
ishr
ireturn
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 11
81424: 3
66245349: 4
66246401: 5
66248104: 6
76404080: 7
76405132: 8
76406835: 9
78251122: 10
78252174: 11
78253877: 12
2053605894: 13
default: 20
}
StackMap locals: java.lang.String
StackMap stack:
3: aload 2
ldc "RS1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 20
StackMap locals:
StackMap stack:
4: aload 2
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 20
StackMap locals:
StackMap stack:
5: aload 2
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 20
StackMap locals:
StackMap stack:
6: aload 2
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 20
StackMap locals:
StackMap stack:
7: aload 2
ldc "PS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 20
StackMap locals:
StackMap stack:
8: aload 2
ldc "PS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 20
StackMap locals:
StackMap stack:
9: aload 2
ldc "PS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
goto 20
StackMap locals:
StackMap stack:
10: aload 2
ldc "RS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 20
StackMap locals:
StackMap stack:
11: aload 2
ldc "RS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 20
StackMap locals:
StackMap stack:
12: aload 2
ldc "RS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
goto 20
StackMap locals:
StackMap stack:
13: aload 2
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 20
14: StackMap locals:
StackMap stack:
bipush 64
ireturn
15: StackMap locals:
StackMap stack:
bipush 96
ireturn
16: StackMap locals:
StackMap stack:
sipush 132
ireturn
17: StackMap locals:
StackMap stack:
sipush 256
ireturn
18: StackMap locals:
StackMap stack:
sipush 384
ireturn
19: StackMap locals:
StackMap stack:
sipush 512
ireturn
20: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
invokespecial java.security.NoSuchAlgorithmException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 alg Ljava/lang/String;
0 21 1 publicKey Ljava/security/PublicKey;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
alg
publicKey
public static java.security.cert.X509Certificate parseX5c(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/cert/X509Certificate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.auth.impl.jose.JWS.X509:Ljava/security/cert/CertificateFactory;
1: new java.io.ByteArrayInputStream
dup
aload 0
ldc "CERTIFICATE"
invokestatic io.vertx.ext.auth.impl.jose.JWS.addBoundaries:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
2: invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
3: checkcast java.security.cert.X509Certificate
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 data Ljava/lang/String;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
data
public static java.security.cert.X509Certificate parseX5c(byte[]);
descriptor: ([B)Ljava/security/cert/X509Certificate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.auth.impl.jose.JWS.X509:Ljava/security/cert/CertificateFactory;
new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 data [B
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
data
public static java.security.cert.X509CRL parseX5crl(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/cert/X509CRL;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.auth.impl.jose.JWS.X509:Ljava/security/cert/CertificateFactory;
1: new java.io.ByteArrayInputStream
dup
aload 0
ldc "X509 CRL"
invokestatic io.vertx.ext.auth.impl.jose.JWS.addBoundaries:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
2: invokevirtual java.security.cert.CertificateFactory.generateCRL:(Ljava/io/InputStream;)Ljava/security/cert/CRL;
3: checkcast java.security.cert.X509CRL
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 data Ljava/lang/String;
Exceptions:
throws java.security.cert.CRLException
MethodParameters:
Name Flags
data
public static java.security.cert.X509CRL parseX5crl(byte[]);
descriptor: ([B)Ljava/security/cert/X509CRL;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.auth.impl.jose.JWS.X509:Ljava/security/cert/CertificateFactory;
new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual java.security.cert.CertificateFactory.generateCRL:(Ljava/io/InputStream;)Ljava/security/cert/CRL;
checkcast java.security.cert.X509CRL
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 data [B
Exceptions:
throws java.security.cert.CRLException
MethodParameters:
Name Flags
data
private static boolean byteAtIndexIs(byte[], int, int);
descriptor: ([BII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iload 1
if_icmpgt 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
iload 1
baload
invokestatic java.lang.Byte.toUnsignedInt:(B)I
iload 2
if_icmpne 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 data [B
0 6 1 idx I
0 6 2 expected I
MethodParameters:
Name Flags
data
idx
expected
private static boolean byteAtIndexLte(byte[], int, int);
descriptor: ([BII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iload 1
if_icmpgt 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
iload 1
baload
ifgt 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
iload 1
baload
invokestatic java.lang.Byte.toUnsignedInt:(B)I
iload 2
if_icmpgt 7
iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 data [B
0 8 1 idx I
0 8 2 expected I
MethodParameters:
Name Flags
data
idx
expected
public static boolean isASN1(byte[]);
descriptor: ([B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
iconst_0
bipush 48
invokestatic io.vertx.ext.auth.impl.jose.JWS.byteAtIndexIs:([BII)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
arraylength
sipush 128
if_icmpge 5
3: iconst_0
istore 1
start local 1 4: goto 8
end local 1 5: StackMap locals:
StackMap stack:
aload 0
iconst_1
sipush 129
invokestatic io.vertx.ext.auth.impl.jose.JWS.byteAtIndexIs:([BII)Z
ifne 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
istore 1
start local 1 8: StackMap locals: int
StackMap stack:
aload 0
iload 1
iconst_1
iadd
aload 0
arraylength
iload 1
isub
iconst_2
isub
invokestatic io.vertx.ext.auth.impl.jose.JWS.byteAtIndexIs:([BII)Z
ifne 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iinc 1 2
11: iconst_0
istore 2
start local 2 12: goto 19
13: StackMap locals: int
StackMap stack:
aload 0
iload 1
iconst_2
invokestatic io.vertx.ext.auth.impl.jose.JWS.byteAtIndexIs:([BII)Z
ifne 15
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_1
iadd
aload 0
arraylength
iload 1
isub
iconst_2
isub
invokestatic io.vertx.ext.auth.impl.jose.JWS.byteAtIndexLte:([BII)Z
ifne 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
iload 1
aload 0
iload 1
iconst_1
iadd
baload
iadd
iconst_2
iadd
istore 1
18: iinc 2 1
StackMap locals:
StackMap stack:
19: iload 2
iconst_2
if_icmplt 13
end local 2 20: iload 1
aload 0
arraylength
if_icmpne 21
iconst_1
ireturn
StackMap locals:
StackMap stack:
21: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 sig [B
4 5 1 offset I
8 22 1 offset I
12 20 2 i I
MethodParameters:
Name Flags
sig
public static byte[] toJWS(byte[], int);
descriptor: ([BI)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
arraylength
bipush 8
if_icmplt 1
aload 0
iconst_0
baload
bipush 48
if_icmpeq 2
1: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Invalid ECDSA signature format"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
baload
ifle 5
3: iconst_2
istore 2
start local 2 4: goto 9
end local 2 StackMap locals:
StackMap stack:
5: aload 0
iconst_1
baload
bipush -127
if_icmpne 8
6: iconst_3
istore 2
start local 2 7: goto 9
end local 2 8: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Invalid ECDSA signature format"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 2 9: StackMap locals: int
StackMap stack:
aload 0
iload 2
iconst_1
iadd
baload
istore 3
start local 3 10: iload 3
istore 4
start local 4 11: goto 13
12: StackMap locals: int int
StackMap stack:
iinc 4 -1
13: StackMap locals:
StackMap stack:
iload 4
ifle 15
14: aload 0
iload 2
iconst_2
iadd
iload 3
iadd
iload 4
isub
baload
ifeq 12
15: StackMap locals:
StackMap stack:
aload 0
iload 2
iconst_2
iadd
iload 3
iadd
iconst_1
iadd
baload
istore 5
start local 5 16: iload 5
istore 6
start local 6 17: goto 19
18: StackMap locals: int int
StackMap stack:
iinc 6 -1
19: StackMap locals:
StackMap stack:
iload 6
ifle 21
20: aload 0
iload 2
iconst_2
iadd
iload 3
iadd
iconst_2
iadd
iload 5
iadd
iload 6
isub
baload
ifeq 18
21: StackMap locals:
StackMap stack:
iload 4
iload 6
invokestatic java.lang.Math.max:(II)I
istore 7
start local 7 22: iload 7
iload 1
iconst_2
idiv
invokestatic java.lang.Math.max:(II)I
istore 7
23: aload 0
iload 2
iconst_1
isub
baload
sipush 255
iand
aload 0
arraylength
iload 2
isub
if_icmpne 27
24: aload 0
iload 2
iconst_1
isub
baload
sipush 255
iand
iconst_2
iload 3
iadd
iconst_2
iadd
iload 5
iadd
if_icmpne 27
25: aload 0
iload 2
baload
iconst_2
if_icmpne 27
26: aload 0
iload 2
iconst_2
iadd
iload 3
iadd
baload
iconst_2
if_icmpeq 28
27: StackMap locals: int
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Invalid ECDSA signature format"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
iconst_2
iload 7
imul
newarray 8
astore 8
start local 8 29: aload 0
iload 2
iconst_2
iadd
iload 3
iadd
iload 4
isub
aload 8
iload 7
iload 4
isub
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 0
iload 2
iconst_2
iadd
iload 3
iadd
iconst_2
iadd
iload 5
iadd
iload 6
isub
aload 8
iconst_2
iload 7
imul
iload 6
isub
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: aload 8
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 derSignature [B
0 32 1 signatureLength I
4 5 2 offset I
7 8 2 offset I
9 32 2 offset I
10 32 3 rLength B
11 32 4 i I
16 32 5 sLength B
17 32 6 j I
22 32 7 rawLen I
29 32 8 concatSignature [B
MethodParameters:
Name Flags
derSignature final
signatureLength
public static byte[] toASN1(byte[]);
descriptor: ([B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
arraylength
iconst_2
idiv
istore 1
start local 1 1: iload 1
istore 2
start local 2 2: goto 4
3: StackMap locals: int int
StackMap stack:
iinc 2 -1
4: StackMap locals:
StackMap stack:
iload 2
ifle 6
5: aload 0
iload 1
iload 2
isub
baload
ifeq 3
6: StackMap locals:
StackMap stack:
iload 2
istore 3
start local 3 7: aload 0
iload 1
iload 2
isub
baload
ifge 9
8: iinc 3 1
9: StackMap locals: int
StackMap stack:
iload 1
istore 4
start local 4 10: goto 12
11: StackMap locals: int
StackMap stack:
iinc 4 -1
12: StackMap locals:
StackMap stack:
iload 4
ifle 14
13: aload 0
iconst_2
iload 1
imul
iload 4
isub
baload
ifeq 11
14: StackMap locals:
StackMap stack:
iload 4
istore 5
start local 5 15: aload 0
iconst_2
iload 1
imul
iload 4
isub
baload
ifge 17
16: iinc 5 1
17: StackMap locals: int
StackMap stack:
iconst_2
iload 3
iadd
iconst_2
iadd
iload 5
iadd
istore 6
start local 6 18: iload 6
sipush 255
if_icmple 20
19: new java.lang.RuntimeException
dup
ldc "Invalid ECDSA signature format"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: int
StackMap stack:
iload 6
sipush 128
if_icmpge 24
21: iconst_4
iload 3
iadd
iconst_2
iadd
iload 5
iadd
newarray 8
astore 8
start local 8 22: iconst_1
istore 7
start local 7 23: goto 27
end local 8 end local 7 24: StackMap locals:
StackMap stack:
iconst_5
iload 3
iadd
iconst_2
iadd
iload 5
iadd
newarray 8
astore 8
start local 8 25: aload 8
iconst_1
bipush -127
bastore
26: iconst_2
istore 7
start local 7 27: StackMap locals: int byte[]
StackMap stack:
aload 8
iconst_0
bipush 48
bastore
28: aload 8
iload 7
iinc 7 1
iload 6
i2b
bastore
29: aload 8
iload 7
iinc 7 1
iconst_2
bastore
30: aload 8
iload 7
iinc 7 1
iload 3
i2b
bastore
31: aload 0
iload 1
iload 2
isub
aload 8
iload 7
iload 3
iadd
iload 2
isub
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: iload 7
iload 3
iadd
istore 7
33: aload 8
iload 7
iinc 7 1
iconst_2
bastore
34: aload 8
iload 7
iinc 7 1
iload 5
i2b
bastore
35: aload 0
iconst_2
iload 1
imul
iload 4
isub
aload 8
iload 7
iload 5
iadd
iload 4
isub
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
36: aload 8
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 jwsSignature [B
1 37 1 rawLen I
2 37 2 i I
7 37 3 j I
10 37 4 k I
15 37 5 l I
18 37 6 len I
23 24 7 offset I
27 37 7 offset I
22 24 8 derSignature [B
25 37 8 derSignature [B
MethodParameters:
Name Flags
jwsSignature
private static java.lang.String addBoundaries(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "-----BEGIN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "-----\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: new java.lang.StringBuilder
dup
ldc "\n-----END "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "-----\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 2: aload 0
aload 2
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
aload 0
aload 3
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
3: aload 0
areturn
4: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 certificate Ljava/lang/String;
0 9 1 boundary Ljava/lang/String;
1 9 2 CERT_BOUNDARY_BEGIN Ljava/lang/String;
2 9 3 CERT_BOUNDARY_END Ljava/lang/String;
MethodParameters:
Name Flags
certificate final
boundary final
}
SourceFile: "JWS.java"