[cifs-protocol] [EXTERNAL] [MS-DTYP] meaning of sign and base and range in conditional ACE integers - TrackingID#2212220040005997

Kristian Smith Kristian.Smith at microsoft.com
Thu Dec 22 17:19:34 UTC 2022


[DocHelp to Bcc]

Hi Douglas,

Thanks for reaching out to DocHelp regarding your [MS-DTYP] questions. I have created case 2212220040005997 so that we can look into these questions. An engineer will reach out soon.

Thank you,
Kristian

Kristian Smith
Support Escalation Engineer
Windows Open Spec Protocols
Office: (425) 421-4442
kristian.smith at microsoft.com<mailto:kristian.smith at microsoft.com>



________________________________
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Sent: Wednesday, December 21, 2022 6:16 PM
To: cifs-protocol at lists.samba.org <cifs-protocol at lists.samba.org>; Interoperability Documentation Help <dochelp at microsoft.com>
Subject: [EXTERNAL] [MS-DTYP] meaning of sign and base and range in conditional ACE integers

hi Dochelp,

In MS-DTYP 2.4.4.17.5 literal integers are encoded as a 64 bit number,
followed by a byte for sign and a byte for base. The range of the
integer is indicated by the token bytecode.

I don't understand how the sign and base are used.

In the example at the bottom of section 2.4.4.17.5 a negative number is
encoded with sign 'None' and base 10. What would be different in
practice if it were encoded with a different base or sign? Would it
compare differently?

As far as I can tell, the only use of integer literal tokens is in
binary relational operators. The documentation for these operators
(2.4.4.17.6) says things like

> MUST evaluate to TRUE if the argument on the RHS evaluates to the exact value
> (single or set value) of the argument on the LHS; otherwise, FALSE.

but it doesn't define how the evaluation works with the sign, base, and
range.

In conventional mathematics octal 03 == decimal 3 == hex 0x03. Does this
hold for conditional ACE literals?

Also, in many systems, the 16 bit value '123' would equal the 32 bit
values '123'. Does this hold in conditional ACEs?

And the sign byte -- what is that for? Does -1 with a negative sign not
equal -1 with a 'none' sign? and can -1 have a positive sign?

Is the base just used for determining how the number is rendered when
converted into SDDL?

cheers,
Douglas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/cifs-protocol/attachments/20221222/68d93f29/attachment.htm>


More information about the cifs-protocol mailing list