Je tente de créer un programme client/serveur, mais je trouve qu'il est difficile de poursuivre avec la quantité de documentation OpenSSL malheureusement insuffisante.SSL_accept() déclenche l'erreur "Argument invalide"
Ma question: SSL_accept
jette un « argument non valide » lors de l'exécution du code suivant (simplifié):
SSL* ssl = SSL_new(ctx); // ctx is created earlier
SSL_set_fd(ssl, socket); // socket is created earlier as well
BIO * bio = BIO_new(BIO_s_accept());
BIO_set_fd(bio, socket, BIO_NOCLOSE);
SSL_set_bio(ssl, bio, bio);
SSL_accept(ssl);
Je vérifie les erreurs après chaque appel de méthode, et ni la prise ni la bio va mal. Il n'y a aucune indication que quelque chose d'étrange se passe jusqu'à ce que j'essaie d'appeler SSL_accept. Je suppose que l'objet ssl a été endommagé quelque part le long du chemin, mais je n'ai pas la moindre idée de la façon dont ~
Modifier L'objet SSL et l'objet BIO sont pas nulle au point d'appeler SSL_accept().
Tous les pointeurs dans la bonne direction serait grandement appréciée: D
Excellent. Le problème était avec la création d'un nouveau socket bio avec BIO_s_accept(). Je vais creuser un peu plus pour savoir pourquoi, mais une fois que je viens de faire un socket BIO standard, accepter semblait fonctionner comme un charme. –