summaryrefslogtreecommitdiff
path: root/files.cpp
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2003-07-04 00:17:37 +0000
committerweidai <weidai11@users.noreply.github.com>2003-07-04 00:17:37 +0000
commitf278895908e663a6a5a2c1f63e5523c5004f5d20 (patch)
tree0536d87e504a82920156c239bc5ae6aa43e70ebc /files.cpp
parente43f74604744291d3a99b8bfe81d94af4ba6abbd (diff)
downloadcryptopp-git-f278895908e663a6a5a2c1f63e5523c5004f5d20.tar.gz
create DLL version, fix GetNextIV() bug in CTR and OFB modes
Diffstat (limited to 'files.cpp')
-rw-r--r--files.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/files.cpp b/files.cpp
index fc32b4b4..25300a1b 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 &parameters)
{
- 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 &parameters)
{
+ 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