Lines Matching refs:key

155 	struct nvme_dhchap_key key;
157 return struct_size(&key, key, key_len);
164 struct nvme_dhchap_key *key;
174 key = nvme_auth_alloc_key(allocated_len, 0);
175 if (!key)
178 key_len = base64_decode(secret, allocated_len, key->key);
180 pr_debug("base64 key decoding error %d\n",
188 pr_err("Invalid key len %d\n", key_len);
199 crc = ~crc32(~0, key->key, key_len);
201 if (get_unaligned_le32(key->key + key_len) != crc) {
202 pr_err("key crc mismatch (key %08x, crc %08x)\n",
203 get_unaligned_le32(key->key + key_len), crc);
207 key->len = key_len;
208 key->hash = key_hash;
209 return key;
211 nvme_auth_free_key(key);
219 struct nvme_dhchap_key *key = kzalloc(num_bytes, GFP_KERNEL);
221 if (key) {
222 key->len = len;
223 key->hash = hash;
225 return key;
229 void nvme_auth_free_key(struct nvme_dhchap_key *key)
231 if (!key)
233 kfree_sensitive(key);
238 struct nvme_dhchap_key *key, char *nqn)
246 if (!key) {
247 pr_warn("No key specified\n");
250 if (key->hash == 0) {
251 key_len = nvme_auth_key_struct_size(key->len);
252 transformed_key = kmemdup(key, key_len, GFP_KERNEL);
257 hmac_name = nvme_auth_hmac_name(key->hash);
259 pr_warn("Invalid key hash id %d\n", key->hash);
276 transformed_key = nvme_auth_alloc_key(key_len, key->hash);
283 ret = crypto_shash_setkey(key_tfm, key->key, key->len);
295 ret = crypto_shash_final(shash, transformed_key->key);
390 pr_debug("failed to set private key, error %d\n", ret);
451 struct nvme_dhchap_key *key;
463 key = nvme_auth_extract_key(secret + 10, key_hash);
464 if (IS_ERR(key)) {
466 return PTR_ERR(key);
469 *ret_key = key;