HomeBlogMagic

OpenSSL Error Codes

Bei Fehlern die in der SSL Kommunikation aufgetreten sind, habe ich schon oft nach den entsprechenden Fehlercodes suchen müssen.

Bei IO Fehlern wie bei SSL_connect(), SSL_accept(), SSL_do_handshake(), SSL_read(), SSL_peek(), oder SSL_write() können die Fehler mit SSL_get_error() ausgelesen werden.

Die restlichen Fehler können aus dem error Header entnommen werden:

Als Tipp: github ermöglicht es zwischen den Versionen zu wechseln und man sollte die eingesetzte Version auswählen um den korrekten Fehlercode zu erhalten.
Der Link zeigt auf die aktuellste Version, die Fehler sollten sich nicht großartig unterscheiden von vorherigen Versionen.

Error String

Example for reading error string if it happens. It will work on other functions too.

int iStatus = SSL_accept(pSslPtr);
if (iStatus <= 0)
{
  char pcMessage[1000];
  int iErrorNr = SSL_get_error(pSslPtr, iStatus);
  ERR_error_string_n(ERR_get_error(), pcMessage, sizeof(pcMessage));
  CCERROR("Error on ssl accept: " + CcString(pcMessage) + " No. " + CcString::fromNumber(iErrorNr));
}

You can ignore CCERROR it's an reporting example from my Framework.

Permalink: https://adirmeier.de/Blog/ID_173
Tags: Blog, C/C++, OpenSSLvon am 2017-10-15