[kmf-discuss] KMF code review (part II.)

Huie-Ying Lee huie-ying.lee at sun.com
Thu Feb 14 11:11:56 PST 2008


Wyllys Ingersoll wrote:
> Huie-Ying Lee wrote:
> 
>> certop.c:
>>
>>   The kmf_sign_data() API needs to be updated to check the key usage 
>> policy
>>   as well.
> 
> It does - see line 583

Hmm, I still didn't see it.   

In the webrev, certop.c, line 578-593 in kmf_sign_data() do not check 
the policy.

--------------------------------------------------------------------------------
 578         /*
 579          * If a signer cert was given, use it to find the private key
 580          * to use for signing the data.
 581          */
 582         if (signer_cert != NULL) {
 583                 ret = check_key_usage(handle, signer_cert, KMF_KU_SIGN_DATA);
 584 
 585                 /*
 586                  * Signing generic data does not require the
 587                  * KeyUsage extension.
 588                  */
 589                 if (ret == KMF_ERR_EXTENSION_NOT_FOUND)
 590                         ret = KMF_OK;
 591                 if (ret != KMF_OK)
 592                         return (ret);
 593
------------------------------------------------------------------------------

However, in kmf_sign_cert() (line 437-443), it checks the policy as below:

--------------------------------------------------------------------------------
 437         if (signer_cert != NULL) {
 438                 policy = handle->policy;
 439                 ret = check_key_usage(handle, signer_cert, KMF_KU_SIGN_CERT);
 440                 if (ret == KMF_ERR_EXTENSION_NOT_FOUND && policy->ku_bits == 0)
 441                         ret = KMF_OK;
 442                 if (ret != KMF_OK)
 443                         return (ret);
 444 
-------------------------------------------------------------------------------


Have  I looked at the same file as yours ?  Have I overlooked anything ?


> Thanks for the comments, the webrev has been updated:
> 
> http://cr.opensolaris.org/~wyllys/kmf
> 

The updated webrev looks good, except the above kmf_sign_data() thing.

Huie-Ying


More information about the kmf-discuss mailing list