public class sun.security.timestamp.HttpTimestamper implements sun.security.timestamp.Timestamper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.timestamp.HttpTimestamper
super_class: java.lang.Object
{
private static final int CONNECT_TIMEOUT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 15000
private static final java.lang.String TS_QUERY_MIME_TYPE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "application/timestamp-query"
private static final java.lang.String TS_REPLY_MIME_TYPE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "application/timestamp-reply"
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.net.URI tsaURI;
descriptor: Ljava/net/URI;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "ts"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.net.URI);
descriptor: (Ljava/net/URI;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield sun.security.timestamp.HttpTimestamper.tsaURI:Ljava/net/URI;
2: aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
ldc "http"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 7
3: aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
ldc "https"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 7
4: new java.lang.IllegalArgumentException
dup
5: ldc "TSA must be an HTTP or HTTPS URI"
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: sun.security.timestamp.HttpTimestamper java.net.URI
StackMap stack:
aload 0
aload 1
putfield sun.security.timestamp.HttpTimestamper.tsaURI:Ljava/net/URI;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/timestamp/HttpTimestamper;
0 9 1 tsaURI Ljava/net/URI;
MethodParameters:
Name Flags
tsaURI
public sun.security.timestamp.TSResponse generateTimestamp(sun.security.timestamp.TSRequest);
descriptor: (Lsun/security/timestamp/TSRequest;)Lsun/security/timestamp/TSResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.timestamp.HttpTimestamper.tsaURI:Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
checkcast java.net.HttpURLConnection
1: astore 2
start local 2 2: aload 2
iconst_1
invokevirtual java.net.HttpURLConnection.setDoOutput:(Z)V
3: aload 2
iconst_0
invokevirtual java.net.HttpURLConnection.setUseCaches:(Z)V
4: aload 2
ldc "Content-Type"
ldc "application/timestamp-query"
invokevirtual java.net.HttpURLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
5: aload 2
ldc "POST"
invokevirtual java.net.HttpURLConnection.setRequestMethod:(Ljava/lang/String;)V
6: aload 2
sipush 15000
invokevirtual java.net.HttpURLConnection.setConnectTimeout:(I)V
7: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
ifnull 18
8: aload 2
invokevirtual java.net.HttpURLConnection.getRequestProperties:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
9: astore 3
start local 3 10: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
aload 2
invokevirtual java.net.HttpURLConnection.getRequestMethod:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.timestamp.HttpTimestamper.tsaURI:Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
11: ldc " HTTP/1.1"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
13: aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.util.Set top java.util.Iterator
StackMap stack:
14: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 15: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
end local 4 16: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
invokevirtual sun.security.util.Debug.println:()V
end local 3 18: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection
StackMap stack:
aload 2
invokevirtual java.net.HttpURLConnection.connect:()V
19: aconst_null
astore 3
start local 3 20: new java.io.DataOutputStream
dup
aload 2
invokevirtual java.net.HttpURLConnection.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 3
21: aload 1
invokevirtual sun.security.timestamp.TSRequest.encode:()[B
astore 4
start local 4 22: aload 3
aload 4
iconst_0
aload 4
arraylength
invokevirtual java.io.DataOutputStream.write:([BII)V
23: aload 3
invokevirtual java.io.DataOutputStream.flush:()V
24: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
ifnull 33
25: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "sent timestamp query (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: aload 4
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
end local 4 28: goto 33
StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream
StackMap stack: java.lang.Throwable
29: astore 5
30: aload 3
ifnull 32
31: aload 3
invokevirtual java.io.DataOutputStream.close:()V
32: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream top java.lang.Throwable
StackMap stack:
aload 5
athrow
33: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream
StackMap stack:
aload 3
ifnull 35
34: aload 3
invokevirtual java.io.DataOutputStream.close:()V
35: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 36: aconst_null
astore 5
start local 5 37: new java.io.BufferedInputStream
dup
aload 2
invokevirtual java.net.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
38: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
ifnull 52
39: aload 2
iconst_0
invokevirtual java.net.HttpURLConnection.getHeaderField:(I)Ljava/lang/String;
astore 6
start local 6 40: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
aload 6
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
41: iconst_1
istore 7
start local 7 42: goto 50
43: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[] java.lang.String int
StackMap stack:
aload 2
iload 7
invokevirtual java.net.HttpURLConnection.getHeaderFieldKey:(I)Ljava/lang/String;
astore 8
start local 8 44: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
ifnonnull 45
ldc ""
goto 46
StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[] java.lang.String int java.lang.String
StackMap stack: sun.security.util.Debug java.lang.StringBuilder
45: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[] java.lang.String int java.lang.String
StackMap stack: sun.security.util.Debug java.lang.StringBuilder java.lang.String
46: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
47: aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
48: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
49: iinc 7 1
end local 8 50: StackMap locals:
StackMap stack:
aload 2
iload 7
invokevirtual java.net.HttpURLConnection.getHeaderField:(I)Ljava/lang/String;
dup
astore 6
ifnonnull 43
51: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
invokevirtual sun.security.util.Debug.println:()V
end local 7 end local 6 52: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.net.HttpURLConnection.getContentType:()Ljava/lang/String;
invokestatic sun.security.timestamp.HttpTimestamper.verifyMimeType:(Ljava/lang/String;)V
53: aload 2
invokevirtual java.net.HttpURLConnection.getContentLength:()I
istore 6
start local 6 54: aload 4
invokestatic sun.misc.IOUtils.readAllBytes:(Ljava/io/InputStream;)[B
astore 5
55: iload 6
iconst_m1
if_icmpeq 59
aload 5
arraylength
iload 6
if_icmpeq 59
56: new java.io.EOFException
dup
new java.lang.StringBuilder
dup
ldc "Expected:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
57: ldc ", read:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
58: invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
59: StackMap locals: int
StackMap stack:
getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
ifnull 68
60: getstatic sun.security.timestamp.HttpTimestamper.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "received timestamp response (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
61: aload 5
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
62: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
end local 6 63: goto 68
StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[]
StackMap stack: java.lang.Throwable
64: astore 9
65: aload 4
ifnull 67
66: aload 4
invokevirtual java.io.BufferedInputStream.close:()V
67: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[] top top top java.lang.Throwable
StackMap stack:
aload 9
athrow
68: StackMap locals: sun.security.timestamp.HttpTimestamper sun.security.timestamp.TSRequest java.net.HttpURLConnection java.io.DataOutputStream java.io.BufferedInputStream byte[]
StackMap stack:
aload 4
ifnull 70
69: aload 4
invokevirtual java.io.BufferedInputStream.close:()V
70: StackMap locals:
StackMap stack:
new sun.security.timestamp.TSResponse
dup
aload 5
invokespecial sun.security.timestamp.TSResponse.<init>:([B)V
areturn
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 71 0 this Lsun/security/timestamp/HttpTimestamper;
0 71 1 tsQuery Lsun/security/timestamp/TSRequest;
2 71 2 connection Ljava/net/HttpURLConnection;
10 18 3 headers Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;>;
15 16 4 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
20 71 3 output Ljava/io/DataOutputStream;
22 28 4 request [B
36 71 4 input Ljava/io/BufferedInputStream;
37 71 5 replyBuffer [B
40 52 6 header Ljava/lang/String;
42 52 7 i I
44 50 8 key Ljava/lang/String;
54 63 6 clen I
Exception table:
from to target type
20 29 29 any
37 64 64 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tsQuery
private static void verifyMimeType(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: ldc "application/timestamp-reply"
aload 0
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 2
1: new java.io.IOException
dup
ldc "MIME Content-Type is not application/timestamp-reply"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 contentType Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
contentType
}
SourceFile: "HttpTimestamper.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map