Hi Shane,

Good catch. I wasted about 4 hours on a fat fingered typo like that -
trying to figure out what I was doing wrong with the library...

Jeff

On 6/1/07, Shane Kirk <[EMAIL PROTECTED]> wrote:
>
> The template class name is "simple_prt", but the constructor is "simple_ptr". 
> I could see how this would cause your error. Unless of course it was simply a 
> typo in your email.
>
> -Shane
>
> --- [EMAIL PROTECTED] wrote:
>
> From: EricD <[EMAIL PROTECTED]>
> To: Crypto++ Users <[EMAIL PROTECTED]>
> Subject: symmetric cipher - visual C++ error
> Date: Fri, 01 Jun 2007 12:25:22 -0700
>
>
> I am trying to run a symmetric cipher with visual C++ express 2005,
> and keep getting an error linked to smartptr.h of the crypto++
> library.  I encounter the errors C2590 ('simple_ptr' : only a
> constructor can have a base/member initializer list) and C2523
> ('CryptoPP::simple_prt<T>::~simple_ptr' : destructor tag mismatch).
> They reference this code:
>
> template <class T> class simple_prt
> {
> public:
>      simple_ptr() : m_p(NULL) {}  //error C2590
>      ~simple_ptr() {delete m_p;}  //error C2523
>      T *m_p;
> };
>
> I am pretty sure C2523 will dissapear if C2590 is resolved, but the
> errors are within the crypto library...and I am at a loss.
>
> I have run the code with and without sp1, on windows vista and 2000,
> and have tried the vista patch for visual C++ as well.
>
> If it helps, below is the full program which shows what my goal is for
> this code.
>
> // PreCompiled Header
> #include "StdAfx.h"
>
> // Includes all required Crypto++
> // Block Cipher Headers
> #include "SymmetricCipher.h"
>
> // C Runtime Includes
> #include <iostream>
> #include <iomanip>
>
> // Crypto++ Includes
> // #include "cryptlib.h"
> #include "crypto++/modes.h" // xxx_Mode< >
> #include "crypto++/filters.h" // StringSource and
> // StreamTransformation
>
> // Cipher Modes
> //
> // #define CIPHER_MODE CBC_CTS_Mode
> #define CIPHER_MODE CBC_Mode
> // #define CIPHER_MODE CFB_FIPS_Mode
> // #define CIPHER_MODE CFB_Mode
> // #define CIPHER_MODE CTR_Mode
> // #define CIPHER_MODE ECB_Mode
> // #define CIPHER_MODE OFB_Mode
>
> // Ciphers
> //
> #define CIPHER AES
> // #define CIPHER Blowfish
> // #define CIPHER BTEA
> // #define CIPHER Camellia
> // #define CIPHER CAST128
> // #define CIPHER CAST256
> // #define CIPHER DES
> // #define CIPHER DES_EDE2
> // #define CIPHER DES_EDE3
> // #define CIPHER DES_XEX3
> // #define CIPHER GOST
> // #define CIPHER IDEA
> // #define CIPHER MARS
> // #define CIPHER RC2
> // #define CIPHER RC5
> // #define CIPHER RC6
> // #define CIPHER Rijndael
> // #define CIPHER SAFER_K
> // #define CIPHER SAFER_SK
> // #define CIPHER Serpent
> // #define CIPHER SHACAL2
> // #define CIPHER SHARK
> // #define CIPHER SKIPJACK
> // #define CIPHER ThreeWay
> // #define CIPHER Twofish
> // #define CIPHER XTEA
>
> int main(int argc, char* argv[]) {
>
>   try
>   {
>      // Key and IV setup
>      byte key[ CryptoPP::CIPHER::DEFAULT_KEYLENGTH ],
>            iv[ CryptoPP::CIPHER::BLOCKSIZE ];
>
>      ::memset( key, 0x01, CryptoPP::CIPHER::DEFAULT_KEYLENGTH );
>      ::memset( iv, 0x01, CryptoPP::CIPHER::BLOCKSIZE );
>
>      // Message M
>      std::string PlainText = "Yoda said, Do or Do Not. There is no
> try.";
>
>      // Cipher Text Sink
>      std::string CipherText;
>
>      // Encryptor
>      CryptoPP::CIPHER_MODE<CryptoPP::CIPHER>::Encryption
>         Encryptor( key, sizeof(key), iv );
>
>      // Encryption
>      CryptoPP::StringSource( PlainText, true,
>         new CryptoPP::StreamTransformationFilter( Encryptor,
>            new CryptoPP::StringSink( CipherText )
>         ) // StreamTransformationFilter
>      ); // StringSource
>
>      ///////////////////////////////////////
>      // DMZ //
>      ///////////////////////////////////////
>
>      // Recovered Text Sink
>      std::string RecoveredText;
>
>      // Decryptor
>      CryptoPP::CIPHER_MODE<CryptoPP::CIPHER>::Decryption
>         Decryptor( key, sizeof(key), iv );
>
>      // Decryption
>      CryptoPP::StringSource( CipherText, true,
>         new CryptoPP::StreamTransformationFilter( Decryptor,
>            new CryptoPP::StringSink( RecoveredText )
>         ) // StreamTransformationFilter
>      ); // StringSource
>
>      //////////////////////////////////////////
>      // Output //
>      //////////////////////////////////////////
>
>      std::cout << "Algorithm:" << std::endl;
>      std::cout << " " << Encryptor.AlgorithmName() << std::endl;
>      std::cout << "Minimum Key Size:" << std::endl;
>      std::cout << " " << Encryptor.MinKeyLength() << " bytes" <<
> std::endl;
>      std::cout << std::endl;
>
>      std::cout << "Plain Text (" << PlainText.length() << " bytes)"
> << std::endl;
>      std::cout << " '" << PlainText << "'" << std::endl;
>      std::cout << std::endl;
>
>      std::cout << "Cipher Text Size:" << std::endl;
>      std::cout << " " << CipherText.size() << " bytes" << std::endl;
>      std::cout << std::endl;
>
>      std::cout << "Recovered Text:" << std::endl;
>      std::cout << " '" << RecoveredText << "'" << std::endl;
>      std::cout << std::endl;
>   }
>   catch( CryptoPP::Exception& e)
>   {
>      std::cerr << e.what() << std::endl;
>   }
>
>   catch(...)
>   {
>      std::cerr << "Unknown Error" << std::endl;
>   }
>
>   return 0;
> }
>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to