/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ /* Explicit template instantiation requests */ #include "runtime.hpp" #include "integer.hpp" #include "rsa.hpp" #include "sha.hpp" #include "md5.hpp" #include "hmac.hpp" #include "ripemd.hpp" #include "pwdbased.hpp" #include "algebra.hpp" #include "vector.hpp" #include "hash.hpp" #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION namespace TaoCrypt { #if defined(SSE2_INTRINSICS_AVAILABLE) template AlignedAllocator::pointer StdReallocate >(AlignedAllocator&, unsigned int*, AlignedAllocator::size_type, AlignedAllocator::size_type, bool); #endif template class RSA_Decryptor; template class RSA_Encryptor; template class RSA_Encryptor; template void tcDelete(HASH*); template void tcDelete(Integer*); template void tcArrayDelete(byte*); template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, byte*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool); template void tcArrayDelete(word*); template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, word*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool); #ifndef TAOCRYPT_SLOW_WORD64 // defined when word != word32 template void tcArrayDelete(word32*); template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, word32*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool); #endif template void tcArrayDelete(char*); template class PBKDF2_HMAC; template class HMAC; template class HMAC; template class HMAC; } namespace mySTL { template vector* uninit_fill_n*, size_t, vector >(vector*, size_t, vector const&); template void destroy*>(vector*, vector*); template TaoCrypt::Integer* uninit_copy(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*); template TaoCrypt::Integer* uninit_fill_n(TaoCrypt::Integer*, size_t, TaoCrypt::Integer const&); template void destroy(TaoCrypt::Integer*, TaoCrypt::Integer*); template TaoCrypt::byte* GetArrayMemory(size_t); template void FreeArrayMemory(TaoCrypt::byte*); template TaoCrypt::Integer* GetArrayMemory(size_t); template void FreeArrayMemory(TaoCrypt::Integer*); template vector* GetArrayMemory >(size_t); template void FreeArrayMemory >(vector*); template void FreeArrayMemory(void*); } #endif