Backport upstream patches for better CloudHSM support (#1562572)
This commit is contained in:
		
							parent
							
								
									d3bb826502
								
							
						
					
					
						commit
						4f3cb20b20
					
				
							
								
								
									
										78
									
								
								opensc-0.17.0-cloudhsm.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								opensc-0.17.0-cloudhsm.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | |||||||
|  | From 74885fb1c174468cc0a505cd7404e228d465efd8 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: AnthonyA <ascanio.alba7@gmail.com> | ||||||
|  | Date: Tue, 27 Mar 2018 00:48:05 +0000 | ||||||
|  | Subject: [PATCH] pkcs11-tool: allow mechanism to be specified in hexadecimal | ||||||
|  | 
 | ||||||
|  | To support vendor mechanisms, let -m accept hexadecimal strings, | ||||||
|  | e.g., -m 0x80001234 | ||||||
|  | ---
 | ||||||
|  |  doc/tools/pkcs11-tool.1.xml | 3 ++- | ||||||
|  |  src/tools/pkcs11-tool.c     | 5 ++++- | ||||||
|  |  2 files changed, 6 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/doc/tools/pkcs11-tool.1.xml b/doc/tools/pkcs11-tool.1.xml
 | ||||||
|  | index f8d638b45..e78570b10 100644
 | ||||||
|  | --- a/doc/tools/pkcs11-tool.1.xml
 | ||||||
|  | +++ b/doc/tools/pkcs11-tool.1.xml
 | ||||||
|  | @@ -231,7 +231,8 @@
 | ||||||
|  |  					</term> | ||||||
|  |  					<listitem><para>Use the specified <replaceable>mechanism</replaceable> | ||||||
|  |  					for token operations. See <option>-M</option> for a list | ||||||
|  | -					of mechanisms supported by your token.</para></listitem>
 | ||||||
|  | +					of mechanisms supported by your token. The mechanism can also be specified in
 | ||||||
|  | +					hexadecimal, e.g., <replaceable>0x80001234</replaceable>.</para></listitem>
 | ||||||
|  |  				</varlistentry> | ||||||
|  |   | ||||||
|  |  				<varlistentry> | ||||||
|  | diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
 | ||||||
|  | index 63e5c5f7f..484c019d8 100644
 | ||||||
|  | --- a/src/tools/pkcs11-tool.c
 | ||||||
|  | +++ b/src/tools/pkcs11-tool.c
 | ||||||
|  | @@ -234,7 +234,7 @@ static const char *option_help[] = {
 | ||||||
|  |  	"Hash some data", | ||||||
|  |  	"Derive a secret key using another key and some data", | ||||||
|  |  	"Derive ECDHpass DER encoded pubkey for compatibility with some PKCS#11 implementations", | ||||||
|  | -	"Specify mechanism (use -M for a list of supported mechanisms)",
 | ||||||
|  | +	"Specify mechanism (use -M for a list of supported mechanisms), or by hexadecimal, e.g., 0x80001234",
 | ||||||
|  |   | ||||||
|  |  	"Log into the token first", | ||||||
|  |  	"Specify login type ('so', 'user', 'context-specific'; default:'user')", | ||||||
|  | @@ -6076,6 +6076,9 @@ static CK_MECHANISM_TYPE p11_name_to_mechanism(const char *name)
 | ||||||
|  |  { | ||||||
|  |  	struct mech_info *mi; | ||||||
|  |   | ||||||
|  | +	if (strncasecmp("0x", name, 2) == 0) {
 | ||||||
|  | +		return strtoul(name, NULL, 0);
 | ||||||
|  | +	}
 | ||||||
|  |  	for (mi = p11_mechanisms; mi->name; mi++) { | ||||||
|  |  		if (!strcasecmp(mi->name, name) | ||||||
|  |  		 || (mi->short_name && !strcasecmp(mi->short_name, name))) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | From ea4baf50d57a7a41164fedcd1b10fdb0438305c5 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: AnthonyA <ascanio.alba7@gmail.com> | ||||||
|  | Date: Mon, 19 Mar 2018 15:58:21 +0800 | ||||||
|  | Subject: [PATCH] pkcs11-tool: make ECPoint behaviour standards compliant by | ||||||
|  |  default | ||||||
|  | 
 | ||||||
|  | Fixes #1286. The behaviour of pkcs11-tool will follow the standard - | ||||||
|  | send DER. If EC_POINT_NO_ASN1_OCTET_STRING is defined then it will | ||||||
|  | write plain bytes. | ||||||
|  | ---
 | ||||||
|  |  src/tools/pkcs11-tool.c | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
 | ||||||
|  | index 876bba2dc..63e5c5f7f 100644
 | ||||||
|  | --- a/src/tools/pkcs11-tool.c
 | ||||||
|  | +++ b/src/tools/pkcs11-tool.c
 | ||||||
|  | @@ -2632,7 +2632,7 @@ parse_ec_pkey(EVP_PKEY *pkey, int private, struct gostkey_info *gost)
 | ||||||
|  |  		header_len = point-gost->public.value; | ||||||
|  |  		memcpy(point, buf, point_len); | ||||||
|  |  		gost->public.len = header_len+point_len; | ||||||
|  | -#ifndef EC_POINT_NO_ASN1_OCTET_STRING // workaround for non-compliant cards not expecting DER encoding
 | ||||||
|  | +#ifdef EC_POINT_NO_ASN1_OCTET_STRING // workaround for non-compliant cards not expecting DER encoding
 | ||||||
|  |  		gost->public.len   -= header_len; | ||||||
|  |  		gost->public.value += header_len; | ||||||
|  |  #endif | ||||||
|  | 
 | ||||||
| @ -26,6 +26,8 @@ Patch5:		opensc-0.17.0-simpletlv.patch | |||||||
| # Make Feitian tokens working again (#1558099) | # Make Feitian tokens working again (#1558099) | ||||||
| # https://github.com/OpenSC/OpenSC/pull/1145 | # https://github.com/OpenSC/OpenSC/pull/1145 | ||||||
| Patch6:		opensc-0.17.0-feitian.patch | Patch6:		opensc-0.17.0-feitian.patch | ||||||
|  | # CloudHSM improvements (proper EC_POINT, specification of mechanisms) | ||||||
|  | Patch7:		opensc-0.17.0-cloudhsm.patch | ||||||
| 
 | 
 | ||||||
| BuildRequires:  pcsc-lite-devel | BuildRequires:  pcsc-lite-devel | ||||||
| BuildRequires:  readline-devel | BuildRequires:  readline-devel | ||||||
| @ -59,6 +61,7 @@ every software/card that does so, too. | |||||||
| %patch4 -p1 -b .cac-alt | %patch4 -p1 -b .cac-alt | ||||||
| %patch5 -p1 -b .simpletlv | %patch5 -p1 -b .simpletlv | ||||||
| %patch6 -p1 -b .feitian | %patch6 -p1 -b .feitian | ||||||
|  | %patch7 -p1 -b .cloudhsm | ||||||
| 
 | 
 | ||||||
| cp -p src/pkcs15init/README ./README.pkcs15init | cp -p src/pkcs15init/README ./README.pkcs15init | ||||||
| cp -p src/scconf/README.scconf . | cp -p src/scconf/README.scconf . | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user