final class io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator
super_class: java.lang.Object
{
static java.lang.String[] generate(java.lang.String, java.security.KeyPair, java.security.SecureRandom, java.util.Date, java.util.Date);
descriptor: (Ljava/lang/String;Ljava/security/KeyPair;Ljava/security/SecureRandom;Ljava/util/Date;Ljava/util/Date;)[Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=9, args_size=5
start local 0 // java.lang.String fqdn
start local 1 // java.security.KeyPair keypair
start local 2 // java.security.SecureRandom random
start local 3 // java.util.Date notBefore
start local 4 // java.util.Date notAfter
0: .line 47
aload 1 /* keypair */
invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
astore 5 /* key */
start local 5 // java.security.PrivateKey key
1: .line 50
new sun.security.x509.X509CertInfo
dup
invokespecial sun.security.x509.X509CertInfo.<init>:()V
astore 6 /* info */
start local 6 // sun.security.x509.X509CertInfo info
2: .line 51
new sun.security.x509.X500Name
dup
new java.lang.StringBuilder
dup
ldc "CN="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* fqdn */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial sun.security.x509.X500Name.<init>:(Ljava/lang/String;)V
astore 7 /* owner */
start local 7 // sun.security.x509.X500Name owner
3: .line 52
aload 6 /* info */
ldc "version"
new sun.security.x509.CertificateVersion
dup
iconst_2
invokespecial sun.security.x509.CertificateVersion.<init>:(I)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
4: .line 53
aload 6 /* info */
ldc "serialNumber"
new sun.security.x509.CertificateSerialNumber
dup
new java.math.BigInteger
dup
bipush 64
aload 2 /* random */
invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
invokespecial sun.security.x509.CertificateSerialNumber.<init>:(Ljava/math/BigInteger;)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
5: .line 55
aload 6 /* info */
ldc "subject"
new sun.security.x509.CertificateSubjectName
dup
aload 7 /* owner */
invokespecial sun.security.x509.CertificateSubjectName.<init>:(Lsun/security/x509/X500Name;)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
6: .line 56
goto 9
StackMap locals: java.lang.String java.security.KeyPair java.security.SecureRandom java.util.Date java.util.Date java.security.PrivateKey sun.security.x509.X509CertInfo sun.security.x509.X500Name
StackMap stack: java.security.cert.CertificateException
7: pop
8: .line 57
aload 6 /* info */
ldc "subject"
aload 7 /* owner */
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
9: .line 60
StackMap locals:
StackMap stack:
aload 6 /* info */
ldc "issuer"
new sun.security.x509.CertificateIssuerName
dup
aload 7 /* owner */
invokespecial sun.security.x509.CertificateIssuerName.<init>:(Lsun/security/x509/X500Name;)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
10: .line 61
goto 13
StackMap locals:
StackMap stack: java.security.cert.CertificateException
11: pop
12: .line 62
aload 6 /* info */
ldc "issuer"
aload 7 /* owner */
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
13: .line 64
StackMap locals:
StackMap stack:
aload 6 /* info */
ldc "validity"
new sun.security.x509.CertificateValidity
dup
aload 3 /* notBefore */
aload 4 /* notAfter */
invokespecial sun.security.x509.CertificateValidity.<init>:(Ljava/util/Date;Ljava/util/Date;)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
14: .line 65
aload 6 /* info */
ldc "key"
new sun.security.x509.CertificateX509Key
dup
aload 1 /* keypair */
invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
invokespecial sun.security.x509.CertificateX509Key.<init>:(Ljava/security/PublicKey;)V
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
15: .line 66
aload 6 /* info */
ldc "algorithmID"
16: .line 67
new sun.security.x509.CertificateAlgorithmId
dup
new sun.security.x509.AlgorithmId
dup
getstatic sun.security.x509.AlgorithmId.sha1WithRSAEncryption_oid:Lsun/security/util/ObjectIdentifier;
invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
invokespecial sun.security.x509.CertificateAlgorithmId.<init>:(Lsun/security/x509/AlgorithmId;)V
17: .line 66
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
18: .line 70
new sun.security.x509.X509CertImpl
dup
aload 6 /* info */
invokespecial sun.security.x509.X509CertImpl.<init>:(Lsun/security/x509/X509CertInfo;)V
astore 8 /* cert */
start local 8 // sun.security.x509.X509CertImpl cert
19: .line 71
aload 8 /* cert */
aload 5 /* key */
ldc "SHA1withRSA"
invokevirtual sun.security.x509.X509CertImpl.sign:(Ljava/security/PrivateKey;Ljava/lang/String;)V
20: .line 74
aload 6 /* info */
ldc "algorithmID.algorithm"
aload 8 /* cert */
ldc "x509.algorithm"
invokevirtual sun.security.x509.X509CertImpl.get:(Ljava/lang/String;)Ljava/lang/Object;
invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
21: .line 75
new sun.security.x509.X509CertImpl
dup
aload 6 /* info */
invokespecial sun.security.x509.X509CertImpl.<init>:(Lsun/security/x509/X509CertInfo;)V
astore 8 /* cert */
22: .line 76
aload 8 /* cert */
aload 5 /* key */
ldc "SHA1withRSA"
invokevirtual sun.security.x509.X509CertImpl.sign:(Ljava/security/PrivateKey;Ljava/lang/String;)V
23: .line 77
aload 8 /* cert */
aload 1 /* keypair */
invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
invokevirtual sun.security.x509.X509CertImpl.verify:(Ljava/security/PublicKey;)V
24: .line 79
aload 0 /* fqdn */
aload 5 /* key */
aload 8 /* cert */
invokestatic io.netty.handler.ssl.util.SelfSignedCertificate.newSelfSignedCertificate:(Ljava/lang/String;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)[Ljava/lang/String;
areturn
end local 8 // sun.security.x509.X509CertImpl cert
end local 7 // sun.security.x509.X500Name owner
end local 6 // sun.security.x509.X509CertInfo info
end local 5 // java.security.PrivateKey key
end local 4 // java.util.Date notAfter
end local 3 // java.util.Date notBefore
end local 2 // java.security.SecureRandom random
end local 1 // java.security.KeyPair keypair
end local 0 // java.lang.String fqdn
LocalVariableTable:
Start End Slot Name Signature
0 25 0 fqdn Ljava/lang/String;
0 25 1 keypair Ljava/security/KeyPair;
0 25 2 random Ljava/security/SecureRandom;
0 25 3 notBefore Ljava/util/Date;
0 25 4 notAfter Ljava/util/Date;
1 25 5 key Ljava/security/PrivateKey;
2 25 6 info Lsun/security/x509/X509CertInfo;
3 25 7 owner Lsun/security/x509/X500Name;
19 25 8 cert Lsun/security/x509/X509CertImpl;
Exception table:
from to target type
5 6 7 Class java.security.cert.CertificateException
9 10 11 Class java.security.cert.CertificateException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
fqdn
keypair
random
notBefore
notAfter
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator this
0: .line 82
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/ssl/util/OpenJdkSelfSignedCertGenerator;
}
SourceFile: "OpenJdkSelfSignedCertGenerator.java"