blowfish decryption ?



  • okay, dann habe ich noch eine letzte frage.

    ich linke die blowfish.cpp und .h datei und include die .h datei in meine main.cpp

    meine maincpp sieht so aus

    #include <iostream>
    #include "Blowfish.h"
    
    using namespace std;
    
    int main()
    {
    
    }
    

    müsste es nicht kompilierbar sein? oder könnte ich selbst da einen fehler gemacht haben ?


  • Mod

    Das sollte compilierbar sein. Ist es das nicht?



  • nein alleine die blowfish.cpp lässt sich nicht kompilieren. das ist ja mein problem 😞

    Compiling: BlowFish.cpp
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In constructor 'CBlowFish::CBlowFish(unsigned char*, size_t, const SBlock&)':
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: error: 'exception' was not declared in this scope
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: note: suggested alternative:
    c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note:   'std::exception'
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:319:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:315:8: warning: unused variable 'iVal' [-Wunused-variable]
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(unsigned char*, size_t, int)':
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: error: 'exception' was not declared in this scope
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: note: suggested alternative:
    c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note:   'std::exception'
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(unsigned char*, size_t, int)':
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: error: 'exception' was not declared in this scope
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: note: suggested alternative:
    c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note:   'std::exception'
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(const unsigned char*, unsigned char*, size_t, int)':
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: error: 'exception' was not declared in this scope
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: note: suggested alternative:
    c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note:   'std::exception'
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(const unsigned char*, unsigned char*, size_t, int)':
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: error: 'exception' was not declared in this scope
    C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: note: suggested alternative:
    c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note:   'std::exception'
    

    er beschwert sich über die class exception
    #include <exception>

    vielleicht habe ich ein problem mit meinem compiler. ich benutze momentan 4.6.1 gcc. den brauche ich leider für die lambda funktion in meinem vorherigen programm.


  • Mod

    Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
    Mach mal unter den Includes in der Blowfish.cpp ein using namespace std; . Das #include <exception> ersetzt du durch #include <stdexcept> . Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception, domain_error klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.



  • SeppJ schrieb:

    Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
    Mach mal unter den Includes in der Blowfish.cpp ein using namespace std; . Das #include <exception> ersetzt du durch #include <stdexcept> . Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception, domain_error klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.

    super vielen dank! ich weiß garnicht was ich sagen soll,

    ja void main und fehlende includes in der testdatei haben mich sehr verwirrt. wenigstens kann ich jetzt kompilieren, dh ich werde bestimmt bald ein fertiges programm haben!

    danke 🙂



  • nice ich habe es schon hinbekommen 🙂


Anmelden zum Antworten