Code review request: 7195426: kdc_default_options not supported correctly
Xuelei Fan
xuelei.fan at oracle.com
Fri Aug 31 10:24:41 UTC 2012
Got it!
Thanks,
Xuelei
On 8/31/2012 6:02 PM, Weijun Wang wrote:
> Hi Xuelei
>
> The number is not equivalent to the ASN.1 bit string. It's more like a
> simple mapping to an unsigned 32 bit int. Here are some codes copied
> from MIT krb5:
>
> krb5.h:
>
> #define KDC_OPT_FORWARDABLE 0x40000000
>
> get_in_tkt.c:
>
> if (options&KDC_OPT_FORWARDABLE)
> krb5_get_init_creds_opt_set_forwardable(opt, 1);
> else krb5_get_init_creds_opt_set_forwardable(opt, 0);
>
> I also think 1<<(31-n) is more clear, but since the constants have been
> there for so many years, I believe they were defined for this very
> purpose and directly use them.
>
> Thanks
> Max
>
>
> On 08/31/2012 05:51 PM, Xuelei Fan wrote:
>> On 8/31/2012 3:08 PM, Weijun Wang wrote:
>>> Please take a look at the change
>>>
>>> http://cr.openjdk.java.net/~weijun/7195426/webrev.00
>>>
>> According to ASN.1 spec, "The leading bit of the bit string is
>> identified by the "number" zero, ..." [X.680]
>>
>> 124 private static final int KDC_OPT_RENEWABLE_OK = 0x00000010;
>> The position of renewable-ok is 27. I think the mask is 0x0000,0100.
>>
>> 125 private static final int KDC_OPT_FORWARDABLE = 0x40000000;
>> The position of FORWARDED is 2. I think the mask is 0x2000,0000.
>>
>> Personally, I would like to use (1<<(31-n)) as the mask. It looks more
>> straightforward.
>>
>> Xuelei
>>
>>>
>>> It seems we confused the mask and the position.
>>>
>>> Thanks
>>> Max
>>>
>>>
>>>
>>> -------- Original Message --------
>>> 7195426: kdc_default_options not supported correctly
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7195426
>>>
>>> Product: java
>>> Category: jgss
>>> Subcategory: krb5plugin
>>>
>>> === *Description*
>>> ============================================================
>>> kdc_default_options is a hex number for krb5.conf to define the
>>> KDCOptions flags in a single integer where each bit of it represents one
>>> of 32 flags.
>>>
>>> If you want to find out if the n-th flag is turn on, you should check
>>> for
>>>
>>> kdc_default_options & (1<<(31-n))
>>>
>>> However, java currently checks for
>>>
>>> kdc_default_options & n
>>>
>>
More information about the security-dev
mailing list