public class org.bouncycastle.cert.dane.DANEEntrySelectorFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.cert.dane.DANEEntrySelectorFactory
super_class: java.lang.Object
{
private final org.bouncycastle.operator.DigestCalculator digestCalculator;
descriptor: Lorg/bouncycastle/operator/DigestCalculator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.bouncycastle.operator.DigestCalculator);
descriptor: (Lorg/bouncycastle/operator/DigestCalculator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.cert.dane.DANEEntrySelectorFactory this
start local 1 // org.bouncycastle.operator.DigestCalculator digestCalculator
0: .line 28
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 30
aload 0 /* this */
aload 1 /* digestCalculator */
putfield org.bouncycastle.cert.dane.DANEEntrySelectorFactory.digestCalculator:Lorg/bouncycastle/operator/DigestCalculator;
2: .line 31
return
end local 1 // org.bouncycastle.operator.DigestCalculator digestCalculator
end local 0 // org.bouncycastle.cert.dane.DANEEntrySelectorFactory this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cert/dane/DANEEntrySelectorFactory;
0 3 1 digestCalculator Lorg/bouncycastle/operator/DigestCalculator;
MethodParameters:
Name Flags
digestCalculator
public org.bouncycastle.cert.dane.DANEEntrySelector createSelector(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/cert/dane/DANEEntrySelector;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 // org.bouncycastle.cert.dane.DANEEntrySelectorFactory this
start local 1 // java.lang.String emailAddress
0: .line 41
aload 1 /* emailAddress */
iconst_0
aload 1 /* emailAddress */
bipush 64
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic org.bouncycastle.util.Strings.toUTF8ByteArray:(Ljava/lang/String;)[B
astore 2 /* enc */
start local 2 // byte[] enc
1: .line 45
aload 0 /* this */
getfield org.bouncycastle.cert.dane.DANEEntrySelectorFactory.digestCalculator:Lorg/bouncycastle/operator/DigestCalculator;
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 3 /* cOut */
start local 3 // java.io.OutputStream cOut
2: .line 47
aload 3 /* cOut */
aload 2 /* enc */
invokevirtual java.io.OutputStream.write:([B)V
3: .line 49
aload 3 /* cOut */
invokevirtual java.io.OutputStream.close:()V
end local 3 // java.io.OutputStream cOut
4: .line 50
goto 7
5: .line 51
StackMap locals: org.bouncycastle.cert.dane.DANEEntrySelectorFactory java.lang.String byte[]
StackMap stack: java.io.IOException
astore 3 /* e */
start local 3 // java.io.IOException e
6: .line 53
new org.bouncycastle.cert.dane.DANEException
dup
new java.lang.StringBuilder
dup
ldc "Unable to calculate digest string: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* e */
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3 /* e */
invokespecial org.bouncycastle.cert.dane.DANEException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 // java.io.IOException e
7: .line 56
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.cert.dane.DANEEntrySelectorFactory.digestCalculator:Lorg/bouncycastle/operator/DigestCalculator;
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
astore 3 /* hash */
start local 3 // byte[] hash
8: .line 58
new java.lang.StringBuilder
dup
aload 3 /* hash */
invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
invokestatic org.bouncycastle.util.Strings.fromByteArray:([B)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "._smimecert."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1 /* emailAddress */
aload 1 /* emailAddress */
bipush 64
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4 /* domainName */
start local 4 // java.lang.String domainName
9: .line 60
new org.bouncycastle.cert.dane.DANEEntrySelector
dup
aload 4 /* domainName */
invokespecial org.bouncycastle.cert.dane.DANEEntrySelector.<init>:(Ljava/lang/String;)V
areturn
end local 4 // java.lang.String domainName
end local 3 // byte[] hash
end local 2 // byte[] enc
end local 1 // java.lang.String emailAddress
end local 0 // org.bouncycastle.cert.dane.DANEEntrySelectorFactory this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/cert/dane/DANEEntrySelectorFactory;
0 10 1 emailAddress Ljava/lang/String;
1 10 2 enc [B
2 4 3 cOut Ljava/io/OutputStream;
6 7 3 e Ljava/io/IOException;
8 10 3 hash [B
9 10 4 domainName Ljava/lang/String;
Exception table:
from to target type
1 4 5 Class java.io.IOException
Exceptions:
throws org.bouncycastle.cert.dane.DANEException
MethodParameters:
Name Flags
emailAddress
}
SourceFile: "DANEEntrySelectorFactory.java"