From 572fe07633123ce38abf28c6426356e37aef3a99 Mon Sep 17 00:00:00 2001 From: weidai Date: Fri, 4 Jul 2003 00:17:37 +0000 Subject: create DLL version, fix GetNextIV() bug in CTR and OFB modes git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@87 57ff6487-cd31-0410-9ec3-f628ee90f5f0 --- files.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'files.cpp') diff --git a/files.cpp b/files.cpp index fc32b4b..25300a1 100644 --- a/files.cpp +++ b/files.cpp @@ -1,6 +1,9 @@ // files.cpp - written and placed in the public domain by Wei Dai #include "pch.h" + +#ifndef CRYPTOPP_IMPORTS + #include "files.h" NAMESPACE_BEGIN(CryptoPP) @@ -16,16 +19,15 @@ void Files_TestInstantiations() void FileStore::StoreInitialize(const NameValuePairs ¶meters) { - m_file.close(); - m_file.clear(); + m_file.reset(new std::ifstream); const char *fileName; if (parameters.GetValue(Name::InputFileName(), fileName)) { ios::openmode binary = parameters.GetValueWithDefault(Name::InputBinaryMode(), true) ? ios::binary : ios::openmode(0); - m_file.open(fileName, ios::in | binary); - if (!m_file) + m_file->open(fileName, ios::in | binary); + if (!*m_file) throw OpenErr(fileName); - m_stream = &m_file; + m_stream = m_file.get(); } else { @@ -148,14 +150,15 @@ unsigned long FileStore::Skip(unsigned long skipMax) void FileSink::IsolatedInitialize(const NameValuePairs ¶meters) { + m_file.reset(new std::ofstream); const char *fileName; if (parameters.GetValue(Name::OutputFileName(), fileName)) { ios::openmode binary = parameters.GetValueWithDefault(Name::OutputBinaryMode(), true) ? ios::binary : ios::openmode(0); - m_file.open(fileName, ios::out | ios::trunc | binary); - if (!m_file) + m_file->open(fileName, ios::out | ios::trunc | binary); + if (!*m_file) throw OpenErr(fileName); - m_stream = &m_file; + m_stream = m_file.get(); } else { @@ -193,3 +196,5 @@ unsigned int FileSink::Put2(const byte *inString, unsigned int length, int messa } NAMESPACE_END + +#endif -- cgit v1.2.1