diff options
author | michael musset <mickamusset@gmail.com> | 2021-11-04 15:55:47 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2022-06-02 08:34:31 +0200 |
commit | 1544513958d9691f6ed576dfb3ff9f8c2a0de372 (patch) | |
tree | 2c8d0566bb542fab564d4ce8eb9f74595508c387 /include | |
parent | 267d560b5ae4e73ea99f8211a2e8d0fa1305d9ea (diff) | |
download | curl-1544513958d9691f6ed576dfb3ff9f8c2a0de372.tar.gz |
libssh2: add CURLOPT_SSH_HOSTKEYFUNCTION
The callback set by CURLOPT_SSH_HOSTKEYFUNCTION is called to check
wether or not the connection should continue.
The host key is passed in argument with a custom handle for the
application.
It overrides CURLOPT_SSH_KNOWNHOSTS
Closes #7959
Diffstat (limited to 'include')
-rw-r--r-- | include/curl/curl.h | 20 | ||||
-rw-r--r-- | include/curl/typecheck-gcc.h | 3 |
2 files changed, 21 insertions, 2 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h index fcd03f736..cb26d24d5 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -855,7 +855,18 @@ typedef int const struct curl_khkey *knownkey, /* known */ const struct curl_khkey *foundkey, /* found */ enum curl_khmatch, /* libcurl's view on the keys */ - void *clientp); /* custom pointer passed from app */ + void *clientp); /* custom pointer passed with */ + /* CURLOPT_SSH_KEYDATA */ + +typedef int + (*curl_sshhostkeycallback) (void *clientp,/* custom pointer passed*/ + /* with CURLOPT_SSH_HOSTKEYDATA */ + int keytype, /* CURLKHTYPE */ + const char *key, /*hostkey to check*/ + size_t keylen); /*length of the key*/ + /*return CURLE_OK to accept*/ + /*or something else to refuse*/ + /* parameter for the CURLOPT_USE_SSL option */ typedef enum { @@ -2122,6 +2133,13 @@ typedef enum { /* Set MIME option flags. */ CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315), + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316), + + /* set the SSH host key callback custom pointer */ + CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317), + CURLOPT_LASTENTRY /* the last unused */ } CURLoption; diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h index 9e14d8a37..43a920104 100644 --- a/include/curl/typecheck-gcc.h +++ b/include/curl/typecheck-gcc.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -374,6 +374,7 @@ CURLWARNING(_curl_easy_getinfo_err_curl_off_t, (option) == CURLOPT_WRITEDATA || \ (option) == CURLOPT_RESOLVER_START_DATA || \ (option) == CURLOPT_TRAILERDATA || \ + (option) == CURLOPT_SSH_HOSTKEYDATA || \ 0) /* evaluates to true if option takes a POST data argument (void* or char*) */ |