void *oauth_data; // OAuth user data
cups_password_cb2_t password_cb; // Password callback
void *password_data; // Password user data
- _http_tls_credentials_t *tls_credentials;
- // Default client credentials, if any
+ _http_tls_credentials_t *credentials; // Default client credentials, if any
cups_client_cert_cb_t client_cert_cb; // Client certificate callback @deprecated@
void *client_cert_data;
// Client certificate user data @deprecated@
httpClose(cg->http);
- _httpFreeCredentials(cg->tls_credentials);
+ _httpFreeCredentials(cg->credentials);
cupsFileClose(cg->stdio_files[0]);
cupsFileClose(cg->stdio_files[1]);
}
+//
+// 'cupsSetClientCredentials()' - Set the default credentials to be used for TLS connections.
+//
+// Note: The default credentials are tracked separately for each thread in a
+// program. Multi-threaded programs that override the setting need to do so in
+// each thread for the same setting to be used.
+//
+// @since CUPS 2.5@
+//
+
+bool // O - `true` on success, `false` on failure
+cupsSetClientCredentials(
+ const char *credentials, // I - PEM-encoded X.509 credentials string
+ const char *key) // I - PEM-encoded private key
+{
+ _cups_globals_t *cg = _cupsGlobals(); // Pointer to library globals
+
+
+ if (!credentials || !*credentials || !key || !*key)
+ return (false);
+
+ _httpFreeCredentials(cg->credentials);
+ cg->credentials = _httpCreateCredentials(credentials, key);
+
+ return (cg->credentials != NULL);
+}
+
+
/*
* 'cupsSetCredentials()' - Set the default credentials to be used for SSL/TLS
* connections.