OpenSSL unter Windows mit Visual Studio 2010



  • Hallo!

    Ich habe mir OpenSSl v1.0.0a für Windows runtergeladen und installiert.
    Danach habe ich noch meinem Projekt das Include Verzeichnis von OpenSSL mitgeteilt.

    #include <openssl/evp.h>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	FILE* file;
    	char key[255];
    	int keylength;
    
    	file=fopen("s59788-source-key-clobbered.bin","rb");
    
    	if(file == NULL) 
    	{
          		printf("Konnte Schluessel nicht finden bzw. öffnen!\n");
          		return EXIT_FAILURE;
       	}
    	const EVP_CIPHER *c = EVP_aes_128_cbc();
    	keylength=EVP_CIPHER_key_length(c);
    	printf("%d",keylength);
    
    	return 0;
    }
    

    jetzt bekomm ich 2 Fehler:

    - Es fehlt ';' vor 'const'
    - 'c': nichtdeklarierter Bezeichner

    Unter Linux ging es. An was kann es liegen? Muss ich noch was linken?



  • Unter ANSI-C89 müssen Variablendeklarationen zu Beginn der Funktion - also vor jeglichen Funktionsaufrufen - stehen.

    Übrigens: In C muss man nicht explizit auf 0 prüfen. Ungleich 0 ist immer true. Du prüfst einen bool doch auch nicht explizit auf true ... hoffe ich jedenfalls 😉



  • Dankeschön FrEEzE2046...das war der Fehler!

    Aber jetzt hab ich diesen Linker Problem, wie ich mir schon gedacht hatte.

    - Verweis auf nicht aufgelöstes externes Symbol "_EVP_CIPHER_key_length" in Funktion "_main".

    - Verweis auf nicht aufgelöstes externes Symbol "_EVP_aes_128_cbc" in Funktion "_main".

    wie muss ich lib dateien einbinden unter visual studio? Bzw. wie bekomm ich raus welche libs ich brauche?



  • Ich hab jetzt libeay32.lib und ssleay32.lib bei zusätliche abhängigkeiten eingefügt und auch das Verzeichnis "C:\OpenSSL-Win64\lib" wo die libarys stehen angegeben.

    Es bleiben trotzdem noch die 2 Fehler....



  • achso das verzeichnis hab ich in Biblotheksverzeichnise eingetragen.



  • Ahhh auch jemand der den IS Beleg macht 🙂

    hast du auch neben den lib dateien auch die Headerdateien eingebunden?
    C/C++ > General > Additional Include Directories



  • hat sich erledigt...irgendwie ging es bloß mit der 64version von openssl nicht.


Anmelden zum Antworten