Overview
Comment: | Fix Tls_Error() signature |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | nijtmans |
Files: | files | file ages | folders |
SHA3-256: |
53b28536f962c957c9cb63190d44c0d6 |
User & Date: | jan.nijtmans on 2024-05-28 15:00:01 |
Other Links: | branch diff | manifest | tags |
Context
2024-05-28
| ||
15:27 | Smarter way to handle typecasting in Tls_Free() Leaf check-in: 402b6db186 user: jan.nijtmans tags: nijtmans | |
15:08 | Fix Tls_Error() signature Leaf check-in: bc6ff74449 user: jan.nijtmans tags: bohagan | |
15:00 | Fix Tls_Error() signature check-in: 53b28536f9 user: jan.nijtmans tags: nijtmans | |
14:44 | Fix tlsUuid.h usage and openssl dll installation in makefile.vc check-in: 138a0b52c8 user: jan.nijtmans tags: nijtmans | |
Changes
Modified generic/tls.c from [02ab8298f1] to [2dddb83a48].
︙ | ︙ | |||
334 335 336 337 338 339 340 | * * Side effects: * The err field of the currently operative State is set * to a string describing the SSL negotiation failure reason *------------------------------------------------------------------- */ void | | | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 | * * Side effects: * The err field of the currently operative State is set * to a string describing the SSL negotiation failure reason *------------------------------------------------------------------- */ void Tls_Error(State *statePtr, const char *msg) { Tcl_Obj *cmdPtr; dprintf("Called"); if (msg && *msg) { Tcl_SetErrorCode(statePtr->interp, "SSL", msg, (char *)NULL); |
︙ | ︙ |
Modified generic/tlsIO.c from [dc77fddc45] to [6dbd36b57c].
︙ | ︙ | |||
232 233 234 235 236 237 238 | } } statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; return -1; case SSL_ERROR_SSL: dprintf("Got permanent fatal SSL error, aborting immediately"); | | | | 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | } } statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; return -1; case SSL_ERROR_SSL: dprintf("Got permanent fatal SSL error, aborting immediately"); Tls_Error(statePtr, ERR_reason_error_string(ERR_get_error())); statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; *errorCodePtr = ECONNABORTED; return -1; default: dprintf("We got a confusing reply: %i", rc); *errorCodePtr = Tcl_GetErrno(); dprintf("ERR(%d, %d) ", rc, *errorCodePtr); return -1; } #if 0 if (statePtr->flags & TLS_TCL_SERVER) { dprintf("This is an TLS server, checking the certificate for the peer"); err = SSL_get_verify_result(statePtr->ssl); if (err != X509_V_OK) { dprintf("Invalid certificate, returning in failure"); Tls_Error(statePtr, X509_verify_cert_error_string(err)); statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; *errorCodePtr = ECONNABORTED; return -1; } } #endif |
︙ | ︙ |
Modified generic/tlsInt.h from [0ebd67e10b] to [230c9dc306].
︙ | ︙ | |||
95 96 97 98 99 100 101 | } #else #define dprintf(...) if (0) { fprintf(stderr, __VA_ARGS__); } #define dprintBuffer(bufferName, bufferLength) /**/ #define dprintFlags(statePtr) /**/ #endif | | | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | } #else #define dprintf(...) if (0) { fprintf(stderr, __VA_ARGS__); } #define dprintBuffer(bufferName, bufferLength) /**/ #define dprintFlags(statePtr) /**/ #endif #define TCLTLS_SSL_ERROR(ssl,err) ERR_reason_error_string((unsigned long)SSL_get_error((ssl),(err))) #define GET_ERR_REASON() ERR_reason_error_string(ERR_get_error()) /* Common list append macros */ #define LAPPEND_BARRAY(interp, obj, text, value, size) {\ if (text != NULL) Tcl_ListObjAppendElement(interp, obj, Tcl_NewStringObj(text, -1)); \ Tcl_ListObjAppendElement(interp, obj, Tcl_NewByteArrayObj(value, size)); \ } |
︙ | ︙ | |||
197 198 199 200 201 202 203 | /* * Forward declarations */ const Tcl_ChannelType *Tls_ChannelType(void); Tcl_Channel Tls_GetParent(State *statePtr, int maskFlags); Tcl_Obj *Tls_NewX509Obj(Tcl_Interp *interp, X509 *cert); | | | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | /* * Forward declarations */ const Tcl_ChannelType *Tls_ChannelType(void); Tcl_Channel Tls_GetParent(State *statePtr, int maskFlags); Tcl_Obj *Tls_NewX509Obj(Tcl_Interp *interp, X509 *cert); void Tls_Error(State *statePtr, const char *msg); #if TCL_MAJOR_VERSION > 8 void Tls_Free(void *blockPtr); #else void Tls_Free(char *blockPtr); #endif void Tls_Clean(State *statePtr); int Tls_WaitForConnect(State *statePtr, int *errorCodePtr, int handshakeFailureIsPermanent); BIO *BIO_new_tcl(State* statePtr, int flags); #define PTR2INT(x) ((int) ((intptr_t) (x))) #endif /* _TLSINT_H */ |