37 import sun.security.ssl.SSLHandshake.HandshakeMessage; |
37 import sun.security.ssl.SSLHandshake.HandshakeMessage; |
38 import static sun.security.ssl.CertStatusExtension.*; |
38 import static sun.security.ssl.CertStatusExtension.*; |
39 import static sun.security.ssl.CertificateMessage.*; |
39 import static sun.security.ssl.CertificateMessage.*; |
40 |
40 |
41 /** |
41 /** |
42 * Pack of the CertificateStatus handshake message. |
42 * Consumers and producers for the CertificateStatus handshake message. |
|
43 * This message takes one of two related but slightly different forms, |
|
44 * depending on the type of stapling selected by the server. The message |
|
45 * data will be of the form(s): |
|
46 * |
|
47 * [status_request, RFC 6066] |
|
48 * |
|
49 * struct { |
|
50 * CertificateStatusType status_type; |
|
51 * select (status_type) { |
|
52 * case ocsp: OCSPResponse; |
|
53 * } response; |
|
54 * } CertificateStatus; |
|
55 * |
|
56 * opaque OCSPResponse<1..2^24-1>; |
|
57 * |
|
58 * [status_request_v2, RFC 6961] |
|
59 * |
|
60 * struct { |
|
61 * CertificateStatusType status_type; |
|
62 * select (status_type) { |
|
63 * case ocsp: OCSPResponse; |
|
64 * case ocsp_multi: OCSPResponseList; |
|
65 * } response; |
|
66 * } CertificateStatus; |
|
67 * |
|
68 * opaque OCSPResponse<0..2^24-1>; |
|
69 * |
|
70 * struct { |
|
71 * OCSPResponse ocsp_response_list<1..2^24-1>; |
|
72 * } OCSPResponseList; |
43 */ |
73 */ |
44 final class CertificateStatus { |
74 final class CertificateStatus { |
45 static final SSLConsumer handshakeConsumer = |
75 static final SSLConsumer handshakeConsumer = |
46 new CertificateStatusConsumer(); |
76 new CertificateStatusConsumer(); |
47 static final HandshakeProducer handshakeProducer = |
77 static final HandshakeProducer handshakeProducer = |