2 Copyright (c) 2000-2008 MySQL AB
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; version 2 of the License.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; see the file COPYING. If not, write to the
15 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
20 /* Explicit template instantiation requests
24 #include "runtime.hpp"
25 #include "handshake.hpp"
26 #include "yassl_int.hpp"
27 #include "crypto_wrapper.hpp"
32 #include "openssl/ssl.h"
34 #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
37 template class list
<unsigned char*>;
38 template yaSSL::del_ptr_zero
for_each(mySTL::list
<unsigned char*>::iterator
, mySTL::list
<unsigned char*>::iterator
, yaSSL::del_ptr_zero
);
39 template pair
<int, yaSSL::Message
* (*)()>* uninit_copy
<mySTL::pair
<int, yaSSL::Message
* (*)()>*, mySTL::pair
<int, yaSSL::Message
* (*)()>*>(mySTL::pair
<int, yaSSL::Message
* (*)()>*, mySTL::pair
<int, yaSSL::Message
* (*)()>*, mySTL::pair
<int, yaSSL::Message
* (*)()>*);
40 template pair
<int, yaSSL::HandShakeBase
* (*)()>* uninit_copy
<mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*, mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*>(mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*, mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*, mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*);
41 template void destroy
<mySTL::pair
<int, yaSSL::Message
* (*)()>*>(mySTL::pair
<int, yaSSL::Message
* (*)()>*, mySTL::pair
<int, yaSSL::Message
* (*)()>*);
42 template void destroy
<mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*>(mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*, mySTL::pair
<int, yaSSL::HandShakeBase
* (*)()>*);
43 template pair
<int, yaSSL::ServerKeyBase
* (*)()>* uninit_copy
<mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*>(mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*);
44 template void destroy
<mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*>(mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ServerKeyBase
* (*)()>*);
45 template pair
<int, yaSSL::ClientKeyBase
* (*)()>* uninit_copy
<mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*>(mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*);
46 template class list
<TaoCrypt::Signer
*>;
47 template class list
<yaSSL::SSL_SESSION
*>;
48 template class list
<yaSSL::input_buffer
*>;
49 template class list
<yaSSL::output_buffer
*>;
50 template class list
<yaSSL::x509
*>;
51 template class list
<yaSSL::Digest
*>;
52 template class list
<yaSSL::BulkCipher
*>;
53 template void destroy
<mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*>(mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*, mySTL::pair
<int, yaSSL::ClientKeyBase
* (*)()>*);
54 template yaSSL::del_ptr_zero for_each
<mySTL::list
<TaoCrypt::Signer
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<TaoCrypt::Signer
*>::iterator
, mySTL::list
<TaoCrypt::Signer
*>::iterator
, yaSSL::del_ptr_zero
);
55 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::SSL_SESSION
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::SSL_SESSION
*>::iterator
, mySTL::list
<yaSSL::SSL_SESSION
*>::iterator
, yaSSL::del_ptr_zero
);
56 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::input_buffer
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::input_buffer
*>::iterator
, mySTL::list
<yaSSL::input_buffer
*>::iterator
, yaSSL::del_ptr_zero
);
57 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::output_buffer
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::output_buffer
*>::iterator
, mySTL::list
<yaSSL::output_buffer
*>::iterator
, yaSSL::del_ptr_zero
);
58 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::x509
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::x509
*>::iterator
, mySTL::list
<yaSSL::x509
*>::iterator
, yaSSL::del_ptr_zero
);
59 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::Digest
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::Digest
*>::iterator
, mySTL::list
<yaSSL::Digest
*>::iterator
, yaSSL::del_ptr_zero
);
60 template yaSSL::del_ptr_zero for_each
<mySTL::list
<yaSSL::BulkCipher
*>::iterator
, yaSSL::del_ptr_zero
>(mySTL::list
<yaSSL::BulkCipher
*>::iterator
, mySTL::list
<yaSSL::BulkCipher
*>::iterator
, yaSSL::del_ptr_zero
);
61 template bool list
<yaSSL::ThreadError
>::erase(list
<yaSSL::ThreadError
>::iterator
);
62 template void list
<yaSSL::ThreadError
>::push_back(yaSSL::ThreadError
);
63 template void list
<yaSSL::ThreadError
>::pop_front();
64 template void list
<yaSSL::ThreadError
>::pop_back();
65 template list
<yaSSL::ThreadError
>::~list();
66 template pair
<int, yaSSL::Message
* (*)()>* GetArrayMemory
<pair
<int, yaSSL::Message
* (*)()> >(size_t);
67 template void FreeArrayMemory
<pair
<int, yaSSL::Message
* (*)()> >(pair
<int, yaSSL::Message
* (*)()>*);
68 template pair
<int, yaSSL::HandShakeBase
* (*)()>* GetArrayMemory
<pair
<int, yaSSL::HandShakeBase
* (*)()> >(size_t);
69 template void FreeArrayMemory
<pair
<int, yaSSL::HandShakeBase
* (*)()> >(pair
<int, yaSSL::HandShakeBase
* (*)()>*);
70 template pair
<int, yaSSL::ServerKeyBase
* (*)()>* GetArrayMemory
<pair
<int, yaSSL::ServerKeyBase
* (*)()> >(size_t);
71 template void FreeArrayMemory
<pair
<int, yaSSL::ServerKeyBase
* (*)()> >(pair
<int, yaSSL::ServerKeyBase
* (*)()>*);
72 template pair
<int, yaSSL::ClientKeyBase
* (*)()>* GetArrayMemory
<pair
<int, yaSSL::ClientKeyBase
* (*)()> >(size_t);
73 template void FreeArrayMemory
<pair
<int, yaSSL::ClientKeyBase
* (*)()> >(pair
<int, yaSSL::ClientKeyBase
* (*)()>*);
77 template void ysDelete
<SSL_CTX
>(yaSSL::SSL_CTX
*);
78 template void ysDelete
<SSL
>(yaSSL::SSL
*);
79 template void ysDelete
<BIGNUM
>(yaSSL::BIGNUM
*);
80 template void ysDelete
<unsigned char>(unsigned char*);
81 template void ysDelete
<DH
>(yaSSL::DH
*);
82 template void ysDelete
<TaoCrypt::Signer
>(TaoCrypt::Signer
*);
83 template void ysDelete
<SSL_SESSION
>(yaSSL::SSL_SESSION
*);
84 template void ysDelete
<input_buffer
>(input_buffer
*);
85 template void ysDelete
<output_buffer
>(output_buffer
*);
86 template void ysDelete
<x509
>(x509
*);
87 template void ysDelete
<Auth
>(Auth
*);
88 template void ysDelete
<HandShakeBase
>(HandShakeBase
*);
89 template void ysDelete
<ServerKeyBase
>(ServerKeyBase
*);
90 template void ysDelete
<ClientKeyBase
>(ClientKeyBase
*);
91 template void ysDelete
<SSL_METHOD
>(SSL_METHOD
*);
92 template void ysDelete
<DiffieHellman
>(DiffieHellman
*);
93 template void ysDelete
<BulkCipher
>(BulkCipher
*);
94 template void ysDelete
<Digest
>(Digest
*);
95 template void ysDelete
<X509
>(X509
*);
96 template void ysDelete
<Message
>(Message
*);
97 template void ysDelete
<sslFactory
>(sslFactory
*);
98 template void ysDelete
<Sessions
>(Sessions
*);
99 template void ysDelete
<Errors
>(Errors
*);
100 template void ysArrayDelete
<unsigned char>(unsigned char*);
101 template void ysArrayDelete
<char>(char*);
103 template int min
<int>(int, int);
104 template uint16 min
<uint16
>(uint16
, uint16
);
105 template unsigned int min
<unsigned int>(unsigned int, unsigned int);
106 template unsigned long min
<unsigned long>(unsigned long, unsigned long);
109 #endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION