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.
- Fehlercodes sind in https://github.com/openssl/openssl/blob/master/include/openssl/ssl.h.in.
- Sucht darin nach SSL_ERROR_NONE
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.