1 
2 // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
3 
4 #ifndef __gnu_javax_net_ssl_provider_AbstractHandshake__
5 #define __gnu_javax_net_ssl_provider_AbstractHandshake__
6 
7 #pragma interface
8 
9 #include <java/lang/Object.h>
10 #include <gcj/array.h>
11 
12 extern "Java"
13 {
14   namespace gnu
15   {
16     namespace classpath
17     {
18       namespace debug
19       {
20           class SystemLogger;
21       }
22     }
23     namespace javax
24     {
25       namespace net
26       {
27         namespace ssl
28         {
29           namespace provider
30           {
31               class AbstractHandshake;
32               class CompressionMethod;
33               class InputSecurityParameters;
34               class OutputSecurityParameters;
35               class Random;
36               class SSLEngineImpl;
37               class SessionImpl;
38           }
39         }
40       }
41     }
42   }
43   namespace java
44   {
45     namespace nio
46     {
47         class ByteBuffer;
48     }
49     namespace security
50     {
51         class MessageDigest;
52         class SecureRandom;
53     }
54   }
55   namespace javax
56   {
57     namespace crypto
58     {
59         class KeyAgreement;
60       namespace interfaces
61       {
62           class DHPrivateKey;
63       }
64     }
65     namespace net
66     {
67       namespace ssl
68       {
69           class SSLEngineResult$HandshakeStatus;
70       }
71     }
72   }
73 }
74 
75 class gnu::javax::net::ssl::provider::AbstractHandshake : public ::java::lang::Object
76 {
77 
78 public: // actually protected
79   AbstractHandshake(::gnu::javax::net::ssl::provider::SSLEngineImpl *);
80 public:
81   virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * handleInput(::java::nio::ByteBuffer *);
82 public: // actually protected
83   virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleInput() = 0;
84 public:
85   virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * handleOutput(::java::nio::ByteBuffer *);
86 public: // actually protected
87   virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleOutput(::java::nio::ByteBuffer *) = 0;
88 public: // actually package-private
89   virtual ::gnu::javax::net::ssl::provider::InputSecurityParameters * getInputParams();
90   virtual ::gnu::javax::net::ssl::provider::OutputSecurityParameters * getOutputParams();
91   virtual ::java::lang::Runnable * getTask();
92   virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * status() = 0;
93   virtual void checkKeyExchange() = 0;
94   virtual void handleV2Hello(::java::nio::ByteBuffer *) = 0;
95 public: // actually protected
96   virtual jboolean pollHandshake(::java::nio::ByteBuffer *);
97   virtual jboolean doHash();
98   virtual jboolean hasMessage();
99 private:
100   void reallocateBuffer(jint);
101 public: // actually protected
102   virtual JArray< jbyte > * genV3CertificateVerify(::java::security::MessageDigest *, ::java::security::MessageDigest *, ::gnu::javax::net::ssl::provider::SessionImpl *);
103   virtual JArray< JArray< jbyte > * > * generateKeys(::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::SessionImpl *);
104   virtual ::java::nio::ByteBuffer * generateFinished(::java::security::MessageDigest *, ::java::security::MessageDigest *, jboolean, ::gnu::javax::net::ssl::provider::SessionImpl *);
105   virtual void initDiffieHellman(::javax::crypto::interfaces::DHPrivateKey *, ::java::security::SecureRandom *);
106   virtual void generateMasterSecret(::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::SessionImpl *);
107   virtual void setupSecurityParameters(JArray< JArray< jbyte > * > *, jboolean, ::gnu::javax::net::ssl::provider::SSLEngineImpl *, ::gnu::javax::net::ssl::provider::CompressionMethod *);
108   virtual void generatePSKSecret(::java::lang::String *, JArray< jbyte > *, jboolean);
109   static ::gnu::classpath::debug::SystemLogger * logger;
110   static JArray< jbyte > * SERVER_FINISHED;
111   static JArray< jbyte > * CLIENT_FINISHED;
112 private:
113   static JArray< jbyte > * KEY_EXPANSION;
114   static JArray< jbyte > * MASTER_SECRET;
115   static JArray< jbyte > * CLIENT_WRITE_KEY;
116   static JArray< jbyte > * SERVER_WRITE_KEY;
117   static JArray< jbyte > * IV_BLOCK;
118   static JArray< jbyte > * SENDER_CLIENT;
119   static JArray< jbyte > * SENDER_SERVER;
120 public: // actually protected
121   static JArray< jbyte > * PAD1;
122   static JArray< jbyte > * PAD2;
123   ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handshakeBuffer;
124   jint handshakeOffset;
125   ::java::security::MessageDigest * sha;
126   ::java::security::MessageDigest * md5;
127   ::gnu::javax::net::ssl::provider::SSLEngineImpl * engine;
128   ::javax::crypto::KeyAgreement * keyAgreement;
129   JArray< jbyte > * preMasterSecret;
130   ::gnu::javax::net::ssl::provider::InputSecurityParameters * inParams;
131   ::gnu::javax::net::ssl::provider::OutputSecurityParameters * outParams;
132   ::java::util::LinkedList * tasks;
133   ::gnu::javax::net::ssl::provider::Random * serverRandom;
134   ::gnu::javax::net::ssl::provider::Random * clientRandom;
135   ::gnu::javax::net::ssl::provider::CompressionMethod * compression;
136 public: // actually package-private
137   static jboolean $assertionsDisabled;
138 public:
139   static ::java::lang::Class class$;
140 };
141 
142 #endif // __gnu_javax_net_ssl_provider_AbstractHandshake__
143