vc++ OpenSSL SSL_CTX_use_PrivateKey_file()



  • hi,

    ich habe eine Server Client Win32-konsole mit SSL verschlüsselung geschrieben was auch wunderbar läuft

    Nu wollte ich da gerne eine dll von machen damit ich es in eine .net win32 anwendung benutzen kann.

    Allerdings hab ich das problem, das wenn ich die SSL_CTX_use_PrivateKey_file() von OpenSSL aufrufe das diese eine eingabe verlangt, also das passwort.
    Kann ich dieser function schon vorher ein string mit dem passwort mitgeben oder kann mann etwas machen das aus der dll, sag ich mal so :), ein fenster erscheind wo ich das paswort eingeben kann?

    mfg



  • nabend,

    ich hab etwas zu meinem problem gefunden um das passwort vorher festzulegen

    SSL_CTX_set_default_passwd_cb(ctx, pem_passwd_cb);
    

    das ist hier beschrieben http://www.openssl.org/docs/ssl/SSL_CTX_set_default_passwd_cb.html#

    Ich hab es auch schon versucht einzubinden allerdings komm ich mit

    int pem_passwd_cb(char *buf, int size, int rwflag, void *password)
     {
      strncpy(buf, (char *)(password), size);
      buf[size - 1] = '\0';
      return(strlen(buf));
     }
    

    nicht ganz klar
    Wo muss ich da mein passwort eingeben und wie läuft das ab?
    wenn mir das jemand erklären könnte wäre ich euch sehr dankbar

    mfg



  • hab die lösung

    SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
    
    SSL_CTX *ctx;
    
    SSL_CTX_set_default_passwd_cb_userdata(ctx, "PASSWORD");
    
    	if ( SSL_CTX_use_PrivateKey_file(ctx, "serverkey.pem", SSL_FILETYPE_PEM) <= 0 )
    	{
    		ERR_print_errors_fp(stderr);
    		abort();
    	}
    

    Aber warum hat mir niemand geholfen?
    Hab ich mein problem schlecht beschrieben oder ist openssl nicht so verbreitet

    Wenn ich es schlecht beschrieben hab, dann sagt mir das bitte damit ich das bei meiner nächste frage besser machen kann 🙂

    mfg


Anmelden zum Antworten