Skip to content

Commit

Permalink
Enable retrieving key from URI.
Browse files Browse the repository at this point in the history
+ Enable the curl code that was already there.
+ Fixes openzfs#24.
  • Loading branch information
FransUrbo committed Apr 28, 2013
1 parent 80b1558 commit a1b7e37
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 10 deletions.
18 changes: 18 additions & 0 deletions config/libcurl.m4
@@ -0,0 +1,18 @@
dnl #
dnl # Check for libcurl
dnl #
AC_DEFUN([ZFS_AC_CONFIG_LIBCURL], [
LIBCURL=
AC_CHECK_HEADER([curl/curl.h], [], [AC_MSG_FAILURE([
*** curl/curl.h missing, libcurl-devel package required])])
AC_CHECK_LIB([curl], [curl_easy_init], [], [AC_MSG_FAILURE([
*** curl_easy_init() missing, libcurl-devel package required])])
AC_CHECK_LIB([curl], [curl_easy_setopt], [], [AC_MSG_FAILURE([
*** curl_easy_setopt() missing, libcurl-devel package required])])
AC_SUBST([LIBCURL], ["-lcurl"])
AC_DEFINE([HAVE_LIBCURL], 1, [Define if you have libcurl])
])
1 change: 1 addition & 0 deletions config/user.m4
Expand Up @@ -8,6 +8,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
ZFS_AC_CONFIG_USER_IOCTL
ZFS_AC_CONFIG_USER_ZLIB
ZFS_AC_CONFIG_USER_LIBUUID
ZFS_AC_CONFIG_LIBCURL
ZFS_AC_CONFIG_USER_LIBBLKID
ZFS_AC_CONFIG_USER_LIBSELINUX
ZFS_AC_CONFIG_USER_FRAME_LARGER_THAN
Expand Down
10 changes: 4 additions & 6 deletions lib/libzfs/libzfs_crypto.c
Expand Up @@ -50,7 +50,7 @@
#include <libgen.h>
#include <sys/fs/zfs.h>
#include <sys/zio_crypt.h>
//#include <curl/curl.h>
#include <curl/curl.h>

#include "zfs_namecheck.h"
#include "zfs_prop.h"
Expand Down Expand Up @@ -149,6 +149,7 @@ parse_locator(key_locator_t *locator, char *s, int len, char **uri)
*uri = s;
return (B_TRUE);
}
#endif

if ((len > strlen(LOC_HTTPS) &&
(strncmp(LOC_HTTPS, s, strlen(LOC_HTTPS)) == 0)) ||
Expand All @@ -158,7 +159,6 @@ parse_locator(key_locator_t *locator, char *s, int len, char **uri)
*uri = s;
return (B_TRUE);
}
#endif

return (B_FALSE);
}
Expand Down Expand Up @@ -619,6 +619,7 @@ get_pkcs11_key_value(libzfs_handle_t *hdl, zfs_cmd_t *zc,
ASSERT(errno != 0);
return (-1);
}
#endif

struct cb_arg_curl {
libzfs_handle_t *cb_hdl;
Expand All @@ -642,7 +643,6 @@ get_keydata_curl(void *ptr, size_t size, size_t nmemb, void *arg)

return (datalen);
}
#endif

static int
key_hdl_to_zc(libzfs_handle_t *hdl, zfs_handle_t *zhp, char *keysource,
Expand All @@ -660,7 +660,7 @@ key_hdl_to_zc(libzfs_handle_t *hdl, zfs_handle_t *zhp, char *keysource,
char *tmpkeydata = NULL;
size_t tmpkeydatalen = 0;
uint64_t salt;
//struct cb_arg_curl cb_curl = { 0 };
struct cb_arg_curl cb_curl = { 0 };

zc->zc_crypto.zic_clone_newkey = hdl->libzfs_crypt.zc_clone_newkey;

Expand Down Expand Up @@ -758,7 +758,6 @@ key_hdl_to_zc(libzfs_handle_t *hdl, zfs_handle_t *zhp, char *keysource,
#endif
break;
case KEY_LOCATOR_HTTPS_URI: {
#if 0
CURL *curl_hdl = curl_easy_init();
CURLcode cerr;

Expand Down Expand Up @@ -794,7 +793,6 @@ key_hdl_to_zc(libzfs_handle_t *hdl, zfs_handle_t *zhp, char *keysource,
keydatalen = cb_curl.cb_keydatalen;

curl_easy_cleanup(curl_hdl);
#endif
break;

case KEY_LOCATOR_NONE: // Avoid Warning
Expand Down
8 changes: 4 additions & 4 deletions module/zcommon/zfs_prop.c
Expand Up @@ -358,7 +358,8 @@ zfs_prop_init(void)
zprop_register_string(ZFS_PROP_KEYSOURCE, "keysource", "none",
PROP_INHERIT, ZFS_TYPE_DATASET,
"raw | hex | passphrase,"
"prompt | file://<path> | NO pkcs11: | NO https://<path>", "KEYSOURCE");
"prompt | file://<path> | NO pkcs11: | https://<path>",
"KEYSOURCE");

/* readonly number properties */
zprop_register_number(ZFS_PROP_USED, "used", 0, PROP_READONLY,
Expand Down Expand Up @@ -440,9 +441,8 @@ zfs_prop_init(void)
zprop_register_hidden(ZFS_PROP_PRIVATE, "priv_prop",
PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_FILESYSTEM,
"PRIV_PROP");
zprop_register_hidden(ZFS_PROP_SALT, "salt", PROP_TYPE_NUMBER,

PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "SALT");
zprop_register_hidden(ZFS_PROP_SALT, "salt", PROP_TYPE_NUMBER,
PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "SALT");

/* oddball properties */
zprop_register_impl(ZFS_PROP_CREATION, "creation", PROP_TYPE_NUMBER, 0,
Expand Down
1 change: 1 addition & 0 deletions rpm/generic/zfs.spec.in
Expand Up @@ -37,6 +37,7 @@ Requires: spl = %{version}
Requires: zfs-dracut = %{version}
Requires: zfs-test = %{version}
Requires: %{name}-kmod >= %{version}
Requires: libcurl3
Provides: %{name}-kmod-common = %{version}

%if 0%{?rhel}%{?fedora}%{?suse_version}
Expand Down

0 comments on commit a1b7e37

Please sign in to comment.