]> Pileus Git - ~andy/linux/blobdiff - net/ceph/crypto.c
ip6tnl: advertise tunnel param via rtnl
[~andy/linux] / net / ceph / crypto.c
index 9da7fdd3cd8ae85b23050f2bf35abf5db1054b37..af14cb425164d068d8a6272e1d9da1491ccd5f74 100644 (file)
@@ -423,14 +423,15 @@ int ceph_encrypt2(struct ceph_crypto_key *secret, void *dst, size_t *dst_len,
        }
 }
 
-int ceph_key_instantiate(struct key *key, const void *data, size_t datalen)
+int ceph_key_instantiate(struct key *key, struct key_preparsed_payload *prep)
 {
        struct ceph_crypto_key *ckey;
+       size_t datalen = prep->datalen;
        int ret;
        void *p;
 
        ret = -EINVAL;
-       if (datalen <= 0 || datalen > 32767 || !data)
+       if (datalen <= 0 || datalen > 32767 || !prep->data)
                goto err;
 
        ret = key_payload_reserve(key, datalen);
@@ -443,8 +444,8 @@ int ceph_key_instantiate(struct key *key, const void *data, size_t datalen)
                goto err;
 
        /* TODO ceph_crypto_key_decode should really take const input */
-       p = (void *)data;
-       ret = ceph_crypto_key_decode(ckey, &p, (char*)data+datalen);
+       p = (void *)prep->data;
+       ret = ceph_crypto_key_decode(ckey, &p, (char*)prep->data+datalen);
        if (ret < 0)
                goto err_ckey;