publish encryptStream properly

This commit is contained in:
David Rose 2009-08-06 18:26:57 +00:00
parent 1e23653549
commit db12a6b88e
4 changed files with 22 additions and 18 deletions

View File

@ -15,7 +15,7 @@
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::Constructor // Function: IDecryptStream::Constructor
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE IDecryptStream:: INLINE IDecryptStream::
@ -24,7 +24,7 @@ IDecryptStream() : istream(&_buf) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::Constructor // Function: IDecryptStream::Constructor
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE IDecryptStream:: INLINE IDecryptStream::
@ -35,7 +35,7 @@ IDecryptStream(istream *source, bool owns_source,
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::open // Function: IDecryptStream::open
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE IDecryptStream &IDecryptStream:: INLINE IDecryptStream &IDecryptStream::
@ -47,7 +47,7 @@ open(istream *source, bool owns_source, const string &password) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::close // Function: IDecryptStream::close
// Access: Public // Access: Published
// Description: Resets the EncryptStream to empty, but does not actually // Description: Resets the EncryptStream to empty, but does not actually
// close the source istream unless owns_source was true. // close the source istream unless owns_source was true.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -59,7 +59,7 @@ close() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::get_algorithm // Function: IDecryptStream::get_algorithm
// Access: Public // Access: Published
// Description: Returns the encryption algorithm that was read from // Description: Returns the encryption algorithm that was read from
// the stream. // the stream.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -70,7 +70,7 @@ get_algorithm() const {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::get_key_length // Function: IDecryptStream::get_key_length
// Access: Public // Access: Published
// Description: Returns the encryption key length, in bits, that was // Description: Returns the encryption key length, in bits, that was
// read from the stream. // read from the stream.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -81,7 +81,7 @@ get_key_length() const {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: IDecryptStream::get_iteration_count // Function: IDecryptStream::get_iteration_count
// Access: Public // Access: Published
// Description: Returns the value that was was read from the stream. // Description: Returns the value that was was read from the stream.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE int IDecryptStream:: INLINE int IDecryptStream::
@ -92,7 +92,7 @@ get_iteration_count() const {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::Constructor // Function: OEncryptStream::Constructor
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE OEncryptStream:: INLINE OEncryptStream::
@ -101,7 +101,7 @@ OEncryptStream() : ostream(&_buf) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::Constructor // Function: OEncryptStream::Constructor
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE OEncryptStream:: INLINE OEncryptStream::
@ -113,7 +113,7 @@ OEncryptStream(ostream *dest, bool owns_dest, const string &password) :
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::open // Function: OEncryptStream::open
// Access: Public // Access: Published
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
INLINE OEncryptStream &OEncryptStream:: INLINE OEncryptStream &OEncryptStream::
@ -125,7 +125,7 @@ open(ostream *dest, bool owns_dest, const string &password) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::close // Function: OEncryptStream::close
// Access: Public // Access: Published
// Description: Resets the EncryptStream to empty, but does not actually // Description: Resets the EncryptStream to empty, but does not actually
// close the dest ostream unless owns_dest was true. // close the dest ostream unless owns_dest was true.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -138,7 +138,7 @@ close() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::set_algorithm // Function: OEncryptStream::set_algorithm
// Access: Public // Access: Published
// Description: Specifies the encryption algorithm that should be // Description: Specifies the encryption algorithm that should be
// used for future calls to open(). The default // used for future calls to open(). The default
// is whatever is specified by the encryption-algorithm // is whatever is specified by the encryption-algorithm
@ -157,7 +157,7 @@ set_algorithm(const string &algorithm) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::set_key_length // Function: OEncryptStream::set_key_length
// Access: Public // Access: Published
// Description: Specifies the length of the key, in bits, that should // Description: Specifies the length of the key, in bits, that should
// be used to encrypt the stream in future calls to // be used to encrypt the stream in future calls to
// open(). The default is whatever is specified // open(). The default is whatever is specified
@ -174,7 +174,7 @@ set_key_length(int key_length) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: OEncryptStream::set_iteration_count // Function: OEncryptStream::set_iteration_count
// Access: Public // Access: Published
// Description: Specifies the number of times to repeatedly hash the // Description: Specifies the number of times to repeatedly hash the
// key before writing it to the stream in future calls // key before writing it to the stream in future calls
// to open(). Its purpose is to make it // to open(). Its purpose is to make it

View File

@ -35,7 +35,7 @@
// Seeking is not supported. // Seeking is not supported.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
class EXPCL_DTOOLCONFIG IDecryptStream : public istream { class EXPCL_DTOOLCONFIG IDecryptStream : public istream {
public: PUBLISHED:
INLINE IDecryptStream(); INLINE IDecryptStream();
INLINE IDecryptStream(istream *source, bool owns_source, INLINE IDecryptStream(istream *source, bool owns_source,
const string &password); const string &password);
@ -64,7 +64,7 @@ private:
// Seeking is not supported. // Seeking is not supported.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
class EXPCL_DTOOLCONFIG OEncryptStream : public ostream { class EXPCL_DTOOLCONFIG OEncryptStream : public ostream {
public: PUBLISHED:
INLINE OEncryptStream(); INLINE OEncryptStream();
INLINE OEncryptStream(ostream *dest, bool owns_dest, INLINE OEncryptStream(ostream *dest, bool owns_dest,
const string &password); const string &password);

View File

@ -419,6 +419,10 @@ underflow() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
size_t EncryptStreamBuf:: size_t EncryptStreamBuf::
read_chars(char *start, size_t length) { read_chars(char *start, size_t length) {
if (length == 0) {
return 0;
}
if (_in_read_overflow_buffer != 0) { if (_in_read_overflow_buffer != 0) {
// Take from the overflow buffer. // Take from the overflow buffer.
length = min(length, _in_read_overflow_buffer); length = min(length, _in_read_overflow_buffer);
@ -493,7 +497,7 @@ read_chars(char *start, size_t length) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void EncryptStreamBuf:: void EncryptStreamBuf::
write_chars(const char *start, size_t length) { write_chars(const char *start, size_t length) {
if (_write_valid) { if (_write_valid && length != 0) {
size_t max_write_buffer = length + _write_block_size; size_t max_write_buffer = length + _write_block_size;
unsigned char *write_buffer = (unsigned char *)alloca(max_write_buffer); unsigned char *write_buffer = (unsigned char *)alloca(max_write_buffer);

View File

@ -28,7 +28,7 @@
// IDecompressStream and OCompressStream. // IDecompressStream and OCompressStream.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
class EXPCL_DTOOLCONFIG EncryptStreamBuf : public streambuf { class EXPCL_DTOOLCONFIG EncryptStreamBuf : public streambuf {
PUBLISHED: public:
EncryptStreamBuf(); EncryptStreamBuf();
virtual ~EncryptStreamBuf(); virtual ~EncryptStreamBuf();