Pass in time_now to unevelope, us verify context time in verify_signed.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23268 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -260,6 +260,7 @@ static int | |||||||
| find_CMSIdentifier(hx509_context context, | find_CMSIdentifier(hx509_context context, | ||||||
| 		   CMSIdentifier *client, | 		   CMSIdentifier *client, | ||||||
| 		   hx509_certs certs, | 		   hx509_certs certs, | ||||||
|  | 		   time_t time_now, | ||||||
| 		   hx509_cert *signer_cert, | 		   hx509_cert *signer_cert, | ||||||
| 		   int match) | 		   int match) | ||||||
| { | { | ||||||
| @@ -292,6 +293,9 @@ find_CMSIdentifier(hx509_context context, | |||||||
|     q.match |= match; |     q.match |= match; | ||||||
|  |  | ||||||
|     q.match |= HX509_QUERY_MATCH_TIME; |     q.match |= HX509_QUERY_MATCH_TIME; | ||||||
|  |     if (time_now) | ||||||
|  | 	q.timenow = time_now; | ||||||
|  |     else | ||||||
| 	q.timenow = time(NULL); | 	q.timenow = time(NULL); | ||||||
|  |  | ||||||
|     ret = hx509_certs_find(context, certs, &q, &cert); |     ret = hx509_certs_find(context, certs, &q, &cert); | ||||||
| @@ -333,6 +337,7 @@ find_CMSIdentifier(hx509_context context, | |||||||
|  * @param length length of the data that data point to. |  * @param length length of the data that data point to. | ||||||
|  * @param encryptedContent in case of detached signature, this |  * @param encryptedContent in case of detached signature, this | ||||||
|  * contains the actual encrypted data, othersize its should be NULL. |  * contains the actual encrypted data, othersize its should be NULL. | ||||||
|  |  * @param time_now set the current time, if zero the library uses now as the date. | ||||||
|  * @param contentType output type oid, should be freed with der_free_oid(). |  * @param contentType output type oid, should be freed with der_free_oid(). | ||||||
|  * @param content the data, free with der_free_octet_string(). |  * @param content the data, free with der_free_octet_string(). | ||||||
|  * |  * | ||||||
| @@ -346,6 +351,7 @@ hx509_cms_unenvelope(hx509_context context, | |||||||
| 		     const void *data, | 		     const void *data, | ||||||
| 		     size_t length, | 		     size_t length, | ||||||
| 		     const heim_octet_string *encryptedContent, | 		     const heim_octet_string *encryptedContent, | ||||||
|  | 		     time_t time_now, | ||||||
| 		     heim_oid *contentType, | 		     heim_oid *contentType, | ||||||
| 		     heim_octet_string *content) | 		     heim_octet_string *content) | ||||||
| { | { | ||||||
| @@ -407,7 +413,8 @@ hx509_cms_unenvelope(hx509_context context, | |||||||
|  |  | ||||||
| 	ri = &ed.recipientInfos.val[i]; | 	ri = &ed.recipientInfos.val[i]; | ||||||
|  |  | ||||||
| 	ret = find_CMSIdentifier(context, &ri->rid, certs, &cert, | 	ret = find_CMSIdentifier(context, &ri->rid, certs, | ||||||
|  | 				 time_now, &cert, | ||||||
| 				 HX509_QUERY_PRIVATE_KEY|findflags); | 				 HX509_QUERY_PRIVATE_KEY|findflags); | ||||||
| 	if (ret) | 	if (ret) | ||||||
| 	    continue; | 	    continue; | ||||||
| @@ -831,7 +838,8 @@ hx509_cms_verify_signed(hx509_context context, | |||||||
| 	    continue; | 	    continue; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	ret = find_CMSIdentifier(context, &signer_info->sid, certs, &cert, | 	ret = find_CMSIdentifier(context, &signer_info->sid, certs,  | ||||||
|  | 				 _hx509_verify_get_time(ctx), &cert, | ||||||
| 				 HX509_QUERY_KU_DIGITALSIGNATURE); | 				 HX509_QUERY_KU_DIGITALSIGNATURE); | ||||||
| 	if (ret) | 	if (ret) | ||||||
| 	    continue; | 	    continue; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand