Bug 1705478

Summary: gnutls fails with PKCS#11 URIs without module specification
Product: Red Hat Enterprise Linux 8 Reporter: Stanislav Zidek <szidek>
Component: gnutlsAssignee: Daiki Ueno <dueno>
Status: CLOSED ERRATA QA Contact: Stanislav Zidek <szidek>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: hkario, ssorce
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: gnutls-3.6.8-8.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 22:26:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stanislav Zidek 2019-05-02 11:31:52 UTC
Description of problem:
If we provide gnutls PKCS#11 URI such as "pkcs11:id=%01", it is not able use the referenced object.

Version-Release number of selected component (if applicable):
gnutls-3.6.5-2.el8.x86_64
p11-kit-0.23.14-4.el8.x86_64

How reproducible:
always

Steps to Reproduce:
1. set up softhsm token with key and cert
2. list the key and cert with module specified
3. list the key and cert with just 'id' specified

Actual results:
2: succeeds
3: Error in crt_list_import (1): PKCS #11 user error

Expected results:
2: succeeds
3: succeeds

Additional info:

Example:
# GNUTLS_PIN=123456 p11tool --login --list-all 'pkcs11:token=softhsm;id=%9b%c9%62%90%a2%46%c1%37%1b%83%4c%10%65%fa%7e%6e%ac%a9%59%ad'
Object 0:
	URL: pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=c1bdcd1a80025b8c;token=softhsm;id=%9b%c9%62%90%a2%46%c1%37%1b%83%4c%10%65%fa%7e%6e%ac%a9%59%ad;object=httpd;type=cert
	Type: X.509 Certificate (RSA-2048)
	Expires: Sat May  2 07:22:55 2020
	Label: httpd
	ID: 9b:c9:62:90:a2:46:c1:37:1b:83:4c:10:65:fa:7e:6e:ac:a9:59:ad

Object 1:
	URL: pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=c1bdcd1a80025b8c;token=softhsm;id=%9b%c9%62%90%a2%46%c1%37%1b%83%4c%10%65%fa%7e%6e%ac%a9%59%ad;object=httpd;type=private
	Type: Private key (RSA-2048)
	Label: httpd
	Flags: CKA_WRAP/UNWRAP; CKA_PRIVATE; CKA_SENSITIVE; 
	ID: 9b:c9:62:90:a2:46:c1:37:1b:83:4c:10:65:fa:7e:6e:ac:a9:59:ad

vs.

# GNUTLS_PIN=123456 p11tool --login --list-all 'pkcs11:id=%9b%c9%62%90%a2%46%c1%37%1b%83%4c%10%65%fa%7e%6e%ac%a9%59%ad'
Error in crt_list_import (1): PKCS #11 user error


Daiki already investigated the issue and the problem seems to be in that gnutls tries to login to p11-kit-trust store. This is unsuccessful as the module does not support logging in and gnutls does not recover from this fail.

Comment 8 errata-xmlrpc 2019-11-05 22:26:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3600