Overview
Comment: | On Windows, set default value for -castore option to Windows cert store |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | main |
Files: | files | file ages | folders |
SHA3-256: |
cfd2090203e564d12c689f4b7e30fba4 |
User & Date: | bohagan on 2024-12-24 04:30:26 |
Other Links: | branch diff | manifest | tags |
Context
2024-12-29
| ||
04:18 | Renamed BIO read/write functions to input/output to avoid confusion with API names. Added PKI and Certificates section to docs. Added/updated comments, formatting updates, etc. check-in: 3848af25d2 user: bohagan tags: trunk, main | |
2024-12-24
| ||
04:30 | On Windows, set default value for -castore option to Windows cert store check-in: cfd2090203 user: bohagan tags: trunk, main | |
2024-12-19
| ||
20:56 | Documentation updates check-in: e03e54ee87 user: bohagan tags: trunk, main | |
Changes
Modified doc/tls.html
from [037437202b]
to [7814ef6b7d].
︙ | ︙ | |||
539 540 541 542 543 544 545 | order to use the <b class="option">-require</b> option, one of the following must be true:</p> <ul class="doctools_itemized"> <li><p>On Linux and Unix systems with OpenSSL already installed, if the CA certificates are stored in the standard locations, or if the <b class="variable">SSL_CERT_DIR</b> or <b class="variable">SSL_CERT_FILE</b> environment variables are set, then <b class="option">-cadir</b>, <b class="option">-cadir</b>, and <b class="option">-castore</b> aren't needed.</p></li> <li><p>If OpenSSL is not installed in the default location, or when using Mac OS | | | 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 | order to use the <b class="option">-require</b> option, one of the following must be true:</p> <ul class="doctools_itemized"> <li><p>On Linux and Unix systems with OpenSSL already installed, if the CA certificates are stored in the standard locations, or if the <b class="variable">SSL_CERT_DIR</b> or <b class="variable">SSL_CERT_FILE</b> environment variables are set, then <b class="option">-cadir</b>, <b class="option">-cadir</b>, and <b class="option">-castore</b> aren't needed.</p></li> <li><p>If OpenSSL is not installed in the default location, or when using Mac OS or Windows and OpenSSL is installed, the <b class="variable">SSL_CERT_DIR</b> and/or <b class="variable">SSL_CERT_FILE</b> environment variables or the one of the <b class="option">-cadir</b>, <b class="option">-cadir</b>, or <b class="option">-castore</b> options must be defined.</p></li> <li><p>On Windows, starting in OpenSSL 3.2, it is now possible to access the built-in Windows Certificate Store from OpenSSL. This can be achieved by setting the <b class="option">-castore</b> option to "<b class="const">org.openssl.winstore://</b>".</p></li> <li><p>If OpenSSL is not installed, the CA certificates must be downloaded and installed with the user software. The CURL team makes them available at |
︙ | ︙ |
Modified doc/tls.man
from [51bf793bc5]
to [3e3e507451].
︙ | ︙ | |||
180 181 182 183 184 185 186 | [opt_def -session_id [arg binary_string]] Specifies the session id to resume a session. Not supported yet. [opt_def -ssl2 [arg bool]] Enable use of SSL v2. The default is [const false]. Note: Recent versions of OpenSSL no longer support SSLv2, so this may not have any effect. See the [cmd tls::protocols] command for supported protocols. | | | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | [opt_def -session_id [arg binary_string]] Specifies the session id to resume a session. Not supported yet. [opt_def -ssl2 [arg bool]] Enable use of SSL v2. The default is [const false]. Note: Recent versions of OpenSSL no longer support SSLv2, so this may not have any effect. See the [cmd tls::protocols] command for supported protocols. [opt_def -ssl3 [arg bool]] Enable use of SSL v3. The default is [const false]. Note: Recent versions of OpenSSL may have this disabled at compile time, so this may not have any effect. See the [cmd tls::protocols] command for supported protocols. [opt_def -tls1 [arg bool]] Enable use of TLS v1. The default is [const true]. Note: TLS 1.0 needs |
︙ | ︙ | |||
559 560 561 562 563 564 565 | On Linux and Unix systems with OpenSSL already installed, if the CA certificates are stored in the standard locations, or if the [var SSL_CERT_DIR] or [var SSL_CERT_FILE] environment variables are set, then [option -cadir], [option -cadir], and [option -castore] aren't needed. [item] If OpenSSL is not installed in the default location, or when using Mac OS | | | 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 | On Linux and Unix systems with OpenSSL already installed, if the CA certificates are stored in the standard locations, or if the [var SSL_CERT_DIR] or [var SSL_CERT_FILE] environment variables are set, then [option -cadir], [option -cadir], and [option -castore] aren't needed. [item] If OpenSSL is not installed in the default location, or when using Mac OS or Windows and OpenSSL is installed, the [var SSL_CERT_DIR] and/or [var SSL_CERT_FILE] environment variables or the one of the [option -cadir], [option -cadir], or [option -castore] options must be defined. [item] On Windows, starting in OpenSSL 3.2, it is now possible to access the built-in Windows Certificate Store from OpenSSL. This can be achieved by setting the [option -castore] option to "[const org.openssl.winstore://]". |
︙ | ︙ | |||
594 595 596 597 598 599 600 | [subsection "Values for Command Callback"] The callback for the [option -command] option is invoked at several points during the OpenSSL handshake and during routine operations. See below for the possible arguments passed to the callback script. Values returned from the callback are ignored. | | | 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 | [subsection "Values for Command Callback"] The callback for the [option -command] option is invoked at several points during the OpenSSL handshake and during routine operations. See below for the possible arguments passed to the callback script. Values returned from the callback are ignored. [list_begin options] [opt_def error [arg "channelId message"]] This form of callback is invoked whenever an error occurs during the initial connection, handshake, or I/O operations. The [arg message] argument can be from the Tcl_ErrnoMsg, OpenSSL function [fun ERR_reason_error_string()], or a custom message. This callback is new for TclTLS 1.8. |
︙ | ︙ | |||
626 627 628 629 630 631 632 | Descriptive message string which may be generated either by [fun SSL_state_string_long()] or [fun SSL_alert_desc_string_long()], depending on the context. [def [arg type]] For alerts, the possible values are: [const warning], [const fatal], and [const unknown]. For others, [const info] is used. | | | 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 | Descriptive message string which may be generated either by [fun SSL_state_string_long()] or [fun SSL_alert_desc_string_long()], depending on the context. [def [arg type]] For alerts, the possible values are: [const warning], [const fatal], and [const unknown]. For others, [const info] is used. This argument is new for TclTLS 1.8. [list_end] [opt_def message [arg "channelId direction version content_type message"]] This form of callback is invoked by the OpenSSL function [fun SSL_set_msg_callback()] whenever a message is sent or received during the initial connection, handshake, or I/O operations. It is only available when |
︙ | ︙ | |||
684 685 686 687 688 689 690 | [subsection "Values for Password Callback"] The callback for the [option -password] option is invoked by TclTLS whenever OpenSSL needs to obtain a password. See below for the possible arguments passed to the callback script. The user provided password is expected to be returned by the callback. | | | 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 | [subsection "Values for Password Callback"] The callback for the [option -password] option is invoked by TclTLS whenever OpenSSL needs to obtain a password. See below for the possible arguments passed to the callback script. The user provided password is expected to be returned by the callback. [list_begin options] [opt_def password [arg "rwflag size"]] Invoked when loading or storing an encrypted PEM certificate. The arguments are: [list_begin definitions] |
︙ | ︙ | |||
714 715 716 717 718 719 720 | The callback for the [option -validatecommand] option is invoked during the handshake process in order for the application to validate the provided value(s). See below for the possible arguments passed to the callback script. If not specified, OpenSSL will accept all valid certificates and extensions. To reject the value and abort the connection, the callback should return 0. To accept the value and continue the connection, it should return 1. To reject the value, but continue the connection, it should return 2. This callback is new for TclTLS 1.8. | | | 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 | The callback for the [option -validatecommand] option is invoked during the handshake process in order for the application to validate the provided value(s). See below for the possible arguments passed to the callback script. If not specified, OpenSSL will accept all valid certificates and extensions. To reject the value and abort the connection, the callback should return 0. To accept the value and continue the connection, it should return 1. To reject the value, but continue the connection, it should return 2. This callback is new for TclTLS 1.8. [list_begin options] [opt_def alpn [arg "channelId protocol match"]] For servers, this form of callback is invoked when the client ALPN extension is received. If [arg match] is true, then [arg protocol] is the first [option -alpn] protocol option in common to both the client and server. If not, the first client specified protocol is used. This callback is called |
︙ | ︙ |
Modified generic/tls.c
from [c32e7b3028]
to [6533cb2d9b].
︙ | ︙ | |||
1442 1443 1444 1445 1446 1447 1448 | statePtr->flags = flags; statePtr->interp = interp; statePtr->want = 0; statePtr->vflags = verify; statePtr->err = ""; | | | | > > > > > > > | 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 | statePtr->flags = flags; statePtr->interp = interp; statePtr->want = 0; statePtr->vflags = verify; statePtr->err = ""; /* Allocate callback script */ if (script) { (void) Tcl_GetStringFromObj(script, &len); if (len) { statePtr->callback = script; Tcl_IncrRefCount(statePtr->callback); } } /* Allocate password callback */ if (password) { (void) Tcl_GetStringFromObj(password, &len); if (len) { statePtr->password = password; Tcl_IncrRefCount(statePtr->password); } } /* Allocate validate callback */ if (vcmd) { (void) Tcl_GetStringFromObj(vcmd, &len); if (len) { statePtr->vcmd = vcmd; Tcl_IncrRefCount(statePtr->vcmd); } } /* Set default CA store on Windows */ #if OPENSSL_VERSION_NUMBER >= 0x30200000L && (defined(_WIN32)) if (CAstore == NULL && CAfile == NULL && CApath == NULL) { CAstore = "org.openssl.winstore://"; } #endif if (model != NULL) { int mode; /* Get the "model" context */ chan = Tcl_GetChannel(interp, model, &mode); if (chan == (Tcl_Channel) NULL) { Tls_Free((tls_free_type *) statePtr); |
︙ | ︙ |