lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Sun, 13 Mar 2022 22:45:41 +0800
From:   kernel test robot <lkp@...el.com>
To:     Hannes Reinecke <hare@...e.de>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [hare-scsi-devel:tls-upcall.v4 140/156]
 drivers/nvme/host/tcp.c:1429: undefined reference to
 `nvme_keyring_lookup_generated_key'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git tls-upcall.v4
head:   d2416ecdb6b03fc2e4aa40b20cdf919322713224
commit: 2025db31c639eb71ba4cd675cb846a14a48cd932 [140/156] nvme-tcp: derive retained keys for TLS
config: i386-randconfig-a012 (https://download.01.org/0day-ci/archive/20220313/202203132228.duAdAwbv-lkp@intel.com/config)
compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commit/?id=2025db31c639eb71ba4cd675cb846a14a48cd932
        git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
        git fetch --no-tags hare-scsi-devel tls-upcall.v4
        git checkout 2025db31c639eb71ba4cd675cb846a14a48cd932
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   ld: drivers/nvme/host/core.o: in function `nvme_core_exit':
   drivers/nvme/host/core.c:4946: undefined reference to `nvme_keyring_exit'
   ld: drivers/nvme/host/core.o: in function `nvme_core_init':
   drivers/nvme/host/core.c:4918: undefined reference to `nvme_keyring_init'
   ld: drivers/nvme/host/tcp.o: in function `nvme_tcp_lookup_psk':
>> drivers/nvme/host/tcp.c:1429: undefined reference to `nvme_keyring_lookup_generated_key'
>> ld: drivers/nvme/host/tcp.c:1431: undefined reference to `nvme_keyring_insert_tls'
   ld: drivers/nvme/host/tcp.c:1439: undefined reference to `nvme_keyring_lookup_tls'
   ld: drivers/nvme/host/tcp.c:1455: undefined reference to `nvme_keyring_lookup_generated_key'
   ld: drivers/nvme/host/tcp.c:1457: undefined reference to `nvme_keyring_insert_tls'
   ld: drivers/nvme/host/tcp.c:1465: undefined reference to `nvme_keyring_lookup_tls'
>> ld: drivers/nvme/host/tcp.c:1442: undefined reference to `nvme_keyring_lookup_retained_key'
   ld: drivers/nvme/host/tcp.c:1444: undefined reference to `nvme_keyring_insert_tls'
   ld: drivers/nvme/host/tcp.c:1468: undefined reference to `nvme_keyring_lookup_retained_key'
   ld: drivers/nvme/host/tcp.c:1470: undefined reference to `nvme_keyring_insert_tls'


vim +1429 drivers/nvme/host/tcp.c

  1403	
  1404	/*
  1405	 * nvme_tcp_lookup_psk - Look up PSKs to use for TLS
  1406	 *
  1407	 * We have several combinations to worry about:
  1408	 * 1) Host requires encryption (opts->tls is set)
  1409	 *    -> lookup pre-provisioned TLS PSKs; keys must be set for
  1410	 *       a connection to be allowed.
  1411	 * 2) Host allows encryptionn (opts->tls is not set)
  1412	 *    -> lookup pre-provisioned TLS PSK;
  1413	 *    -> lookup retained TLS key if no PSKs are found, and
  1414	 *       generate PSK based on the retained TLS key.
  1415	 *    -> Do not start TLS if no key (PSK or retained) is found.
  1416	 * 2) Host does not use encryption (opts->tls is not set)
  1417	 *    -> no keys are provisioned.
  1418	 */
  1419	static int nvme_tcp_lookup_psk(struct nvme_ctrl *nctrl, int qid,
  1420				       bool force_tls)
  1421	{
  1422		char *hostnqn = nctrl->opts->host->nqn;
  1423		char *subnqn = nvmf_ctrl_subsysnqn(nctrl);
  1424		int num_keys = 0;
  1425		struct key *generated_key, *retained_key, *tls_key;
  1426	
  1427		/* Check for pre-provisioned keys */
  1428		/* Generated key with hmac256 */
> 1429		generated_key = nvme_keyring_lookup_generated_key(hostnqn, subnqn, 1);
  1430		if (!IS_ERR(generated_key)) {
> 1431			tls_key = nvme_keyring_insert_tls(generated_key, nctrl,
  1432							  1, true);
  1433			if (!IS_ERR(tls_key)) {
  1434				key_put(tls_key);
  1435				num_keys++;
  1436			}
  1437		}
  1438		/* Retained key with hmac256 */
  1439		tls_key = nvme_keyring_lookup_tls(nctrl, 1, false);
  1440		if (IS_ERR(tls_key) && !force_tls) {
  1441			/* Not found, derive key from PSK if present */
> 1442			retained_key = nvme_keyring_lookup_retained_key(hostnqn, 1);
  1443			if (!IS_ERR(retained_key)) {
  1444				tls_key = nvme_keyring_insert_tls(retained_key, nctrl,
  1445								  1, false);
  1446				if (!IS_ERR(tls_key)) {
  1447					key_put(tls_key);
  1448					num_keys++;
  1449				}
  1450			}
  1451		} else
  1452			num_keys++;
  1453	
  1454		/* Generated key with hmac384 */
  1455		generated_key = nvme_keyring_lookup_generated_key(hostnqn, subnqn, 2);
  1456		if (!IS_ERR(generated_key)) {
  1457			tls_key = nvme_keyring_insert_tls(generated_key, nctrl,
  1458							  2, true);
  1459			if (!IS_ERR(tls_key)) {
  1460				key_put(tls_key);
  1461				num_keys++;
  1462			}
  1463		}
  1464		/* Retained key with hmac384 */
  1465		tls_key = nvme_keyring_lookup_tls(nctrl, 2, false);
  1466		if (IS_ERR(tls_key) && !force_tls) {
  1467			/* Not found, derive key from PSK if present */
  1468			retained_key = nvme_keyring_lookup_retained_key(hostnqn, 2);
  1469			if (!IS_ERR(retained_key)) {
  1470				tls_key = nvme_keyring_insert_tls(retained_key,
  1471								  nctrl, 2, false);
  1472				if (!IS_ERR(tls_key)) {
  1473					key_put(tls_key);
  1474					num_keys++;
  1475				}
  1476			}
  1477		} else
  1478			num_keys++;
  1479	
  1480		if (!num_keys)
  1481			return 0;
  1482	
  1483		dev_dbg(nctrl->device, "qid %d: start tls with %d keys\n",
  1484			qid, num_keys);
  1485		return num_keys;
  1486	}
  1487	

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Powered by blists - more mailing lists