1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
/*
* Provides Custom BIO layer to interface OpenSSL with TCL. These
* functions directly interface between the IO channel and BIO buffers.
*
* Copyright (C) 1997-2000 Matt Newman <matt@novadigm.com>
* Copyright (C) 2024 Brian O'Hagan
*
*/
/*
tlsBIO.c tlsIO.c
+------+ +-----+ +------+
| |Tcl_WriteRaw <-- BioWrite| SSL |BIO_write <-- TlsOutputProc <-- Write| |
|socket| <encrypted> | BIO | <unencrypted> | App |
|socket| <encrypted> | BIO | <unencrypted> | App |
| |Tcl_ReadRaw --> BioRead| |BIO_Read --> TlsInputProc --> Read| |
+------+ +-----+ +------+
*/
#include "tlsInt.h"
#include <openssl/bio.h>
|
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
|
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
|
-
+
|
*/
BIO *BIO_new_tcl(State *statePtr, int flags) {
BIO *bio;
#ifdef TCLTLS_SSL_USE_FASTPATH
Tcl_Channel parentChannel;
const Tcl_ChannelType *parentChannelType;
int parentChannelFdIn, parentChannelFdOut, parentChannelFd;
int validParentChannelFd;
#endif
dprintf("BIO_new_tcl() called");
/* Create custom BIO method */
|