summaryrefslogtreecommitdiffstats
path: root/Documentation/nvme-gen-tls-key.txt
blob: 9a03e3ab31104997a6a430f4efff736c1597cd46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
nvme-gen-tls-key(1)
======================

NAME
----
nvme-gen-tls-key - Generate a NVMe TLS PSK

SYNOPSIS
--------
[verse]
'nvme gen-tls-key' [--keyring=<name> | -k <name>]
                      [--keytype=<type> | -t <type> ]
		      [--hostnqn=<nqn> | -n <nqn>]
		      [--subsysnqn=<nqn> | -c <nqn>]
		      [--hmac=<hmac-id> | -h <hmac-id>]
		      [--secret=<secret> | -s <secret> ]
		      [--insert | -i ]

DESCRIPTION
-----------
Generate a base64-encoded NVMe TLS pre-shared key (PSK).
The resulting key is either printed in the PSK interchange format
'NVMeTLSkey-1:01:<base64 encoded data>:',
inserted as a 'retained' key into the specified keyring, or both.
When the PSK should be inserted into the keyring a 'retained' key
is derived from the secret key material, and the resulting 'retained'
key is stored with the identity
'NVMe0R0<hmac> <host NQN> <subsystem NQN>'
in the keyring.
The 'retained' key is derived from the secret key material,
the specified subsystem NQN, and the host NQN.
Once the 'retained' key is stored in the keyring the original
secret key material cannot be retrieved.

OPTIONS
-------
-k <name>::
--keyring=<name>::
	Name of the keyring into which the 'retained' TLS key should be
	stored. Default is '.nvme'.

-t <type>::
--keytype=<type>::
	Type of the key for resulting TLS key.
	Default is 'psk'.

-n <nqn>::
--hostnqn=<nqn>::
	Host NVMe Qualified Name (NQN) to be used to derive the
	'retained' TLS key

-c <nqn>::
--subsysnqn=<nqn>::
	Subsystem NVMe Qualified Name (NQN) to be used to derive the
	'retained' TLS key

-h <hmac-id>::
--hmac=<hmac-id>::
	Select a HMAC algorithm to use. Possible values are:
	1 - SHA-256 (default)
	2 - SHA-384

-s <secret>::
--secret=<secret>::
	Secret value (in hexadecimal) to be used for the key. If none are
	provided a random value is used.

-i::
--insert::
	Insert the resulting TLS key into the keyring without printing out
	the key in PSK interchange format.

EXAMPLES
--------
No Examples

NVME
----
Part of the nvme-user suite