/** * gnutls_privkey_import_url: * @key: A key of type #gnutls_privkey_t * @url: A PKCS 11 url * @flags: should be zero * * This function will import a PKCS11 or TPM URL as a * private key. The supported URL types can be checked * using gnutls_url_is_supported(). * * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a * negative error value. * * Since: 3.1.0 **/ int gnutls_privkey_import_url(gnutls_privkey_t key, const char *url, unsigned int flags) { unsigned i; int ret; if (strncmp(url, PKCS11_URL, PKCS11_URL_SIZE) == 0) { #ifdef ENABLE_PKCS11 ret = _gnutls_privkey_import_pkcs11_url(key, url, flags); #else ret = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); #endif goto cleanup; } if (strncmp(url, TPMKEY_URL, TPMKEY_URL_SIZE) == 0) { #ifdef HAVE_TROUSERS ret = gnutls_privkey_import_tpm_url(key, url, NULL, NULL, 0); #else ret = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); #endif goto cleanup; } if (strncmp(url, SYSTEM_URL, SYSTEM_URL_SIZE) == 0) { ret = _gnutls_privkey_import_system_url(key, url); goto cleanup; } for (i=0;i<_gnutls_custom_urls_size;i++) { if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) { if (_gnutls_custom_urls[i].import_key) { ret = _gnutls_custom_urls[i].import_key(key, url, flags); goto cleanup; } break; } } ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST); cleanup: return ret; }
/** * gnutls_privkey_import_url: * @key: A key of type #gnutls_privkey_t * @url: A PKCS 11 url * @flags: should be zero * * This function will import a PKCS11 or TPM URL as a * private key. The supported URL types can be checked * using gnutls_url_is_supported(). * * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a * negative error value. * * Since: 3.1.0 **/ int gnutls_privkey_import_url(gnutls_privkey_t key, const char *url, unsigned int flags) { if (strncmp(url, "pkcs11:", 7) == 0) #ifdef ENABLE_PKCS11 return gnutls_privkey_import_pkcs11_url(key, url); #else return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); #endif if (strncmp(url, "tpmkey:", 7) == 0) #ifdef HAVE_TROUSERS return gnutls_privkey_import_tpm_url(key, url, NULL, NULL, 0); #else return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); #endif return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST); }