Günther,


As a follow-up, below is the text of [MS-LSAD] 2.2.7.16 as it was updated for 
your issue.  It will become available in a future refresh of the documentation.



Bryan





2.2.7.16   LSAPR_TRUSTED_DOMAIN_AUTH_BLOB
The LSAPR_TRUSTED_DOMAIN_AUTH_BLOB structure contains a counted buffer of 
authentication material. Domain trust authentication is specified in 
[MS-ADTS]<%5bMS-ADTS%5d.pdf> section 7.1.6.9.1.

typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB {

  [range(0,65536)] unsigned long AuthSize;

  [size_is(AuthSize)] unsigned char* AuthBlob;

} LSAPR_TRUSTED_DOMAIN_AUTH_BLOB,

 *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB;



AuthSize:  The count of bytes in AuthBlob.<26>

AuthBlob:  An array of bytes containing the authentication material. If the 
AuthSize field has a value other than 0, this field MUST NOT be NULL. Always 
encrypted using algorithms, as specified in section 5.1.1. The plaintext layout 
is in the following format.

The incoming and outgoing authentication information buffer size included at 
the end of the LSAPR_TRUSTED_DOMAIN_AUTH_BLOB can be used to extract the 
incoming and outgoing authentication information buffers from the 
LSAPR_TRUSTED_DOMAIN_AUTH_BLOB. Each of these buffers contains the byte offset 
to both the current and the previous authentication information. This 
information can be used to extract current and (if any) previous authentication 
information.

0


1


2


3


4


5


6


7


8


9


1
0


1


2


3


4


5


6


7


8


9


2
0


1


2


3


4


5


6


7


8


9


3
0


1


512 bytes of random data ...


CountOutgoingAuthInfos


ByteOffsetCurrentOutgoingAuthInfo


ByteOffsetPreviousOutgoingAuthInfo


CurrentOutgoingAuthInfos


...


PreviousOutgoingAuthInfos (optional)


...


CountIncomingAuthInfos


ByteOffsetCurrentIncomingAuthInfo


ByteOffsetPreviousIncomingAuthInfo


CurrentIncomingAuthInfos


...


PreviousIncomingAuthInfos (optional)


...


OutgoingAuthInfoSize


IncomingAuthInfoSize


CountOutgoingAuthInfos (4 bytes): Specifies the count of entries present in the 
CurrentOutgoingAuthInfos field. Also specifies the count of entries present in 
the PreviousOutgoingAuthInfos field if this optional field is present.

ByteOffsetCurrentOutgoingAuthInfo (4 bytes): Specifies the byte offset from the 
beginning of CountOutgoingAuthInfos to the start of the 
CurrentOutgoingAuthInfos field. If CountOutgoingAuthInfos is 0, this field MUST 
be ignored.

ByteOffsetPreviousOutgoingAuthInfo (4 bytes): Specifies the byte offset from 
the beginning of CountOutgoingAuthInfos to the start of the 
PreviousOutgoingAuthInfos field. If the difference between 
ByteOffsetPreviousOutgoingAuthInfo and OutgoingAuthInfoSize is 0, the 
PreviousOutgoingAuthInfos field has zero entries.

CurrentOutgoingAuthInfos: Contains an array of CountOutgoingAuthInfos of 
LSAPR_AUTH_INFORMATION (section 2.2.7.17) entries in self-relative format. Each 
LSAPR_AUTH_INFORMATION entry in the array MUST be 4-byte aligned. When it is 
necessary to insert unused padding bytes into a buffer for data alignment, such 
bytes MUST be set to 0.

PreviousOutgoingAuthInfos: Contains an array of CountOutgoingAuthInfos 
LSAPR_AUTH_INFORMATION entries in self-relative format. See the comments for 
the ByteOffsetPreviousOutgoingAuthInfo field to determine when this field is 
present. Each LSAPR_AUTH_INFORMATION entry in the array MUST be 4-byte aligned. 
When it is necessary to insert unused padding bytes into a buffer for data 
alignment, such bytes MUST be set to 0.

CountIncomingAuthInfos (4 bytes): Specifies the count of entries present in the 
CurrentIncomingAuthInfos field. Also specifies the count of entries present in 
the PreviousIncomingAuthInfos field if this optional field is present.

ByteOffsetCurrentIncomingAuthInfo (4 bytes): Specifies the byte offset from the 
beginning of CountIncomingAuthInfos to the start of the 
CurrentIncomingAuthInfos field. If CountIncomingAuthInfos is 0, this field MUST 
be ignored.

ByteOffsetPreviousIncomingAuthInfo (4 bytes): Specifies the byte offset from 
the beginning of CountIncomingAuthInfos to the start of the 
PreviousIncomingAuthInfos field. If the difference between 
ByteOffsetPreviousIncomingAuthInfo and IncomingAuthInfoSize is 0, the 
PreviousIncomingAuthInfos field has zero entries.

CurrentIncomingAuthInfos: Contains an array of CountIncomingAuthInfos 
LSAPR_AUTH_INFORMATION entries in self-relative format. Each 
LSAPR_AUTH_INFORMATION entry in the array MUST be 4-byte aligned. When it is 
necessary to insert unused padding bytes into a buffer for data alignment, such 
bytes MUST be set to 0.

PreviousIncomingAuthInfos: Contains an array of CountIncomingAuthInfos 
LSAPR_AUTH_INFORMATION entries in self-relative format. See the comments for 
the ByteOffsetPreviousIncomingAuthInfo field to determine when this field is 
present. Each LSAPR_AUTH_INFORMATION entry in the array MUST be 4-byte aligned. 
When it is necessary to insert unused padding bytes into a buffer for data 
alignment, such bytes MUST be set to 0.

OutgoingAuthInfoSize (4 bytes): Specifies the size, in bytes, of the subportion 
of the structure from the beginning of the CountOutgoingAuthInfos field through 
the end of the of the PreviousOutgoingAuthInfos field.

IncomingAuthInfoSize (4 bytes): Specifies the size, in bytes, of the 
sub-portion of the structure from the beginning of the CountIncomingAuthInfos 
field through the end of the of the PreviousIncomingAuthInfos field.





-----Original Message-----
From: Bryan Burgin
Sent: Thursday, October 07, 2010 2:50 PM
To: Guenther Deschner ([email protected])
Cc: MSSolve Case Email; '[email protected]'; '[email protected]'
Subject: RE: [REG:110092949275537] MS-LSAD 2.2.7.16 
LSAPR_TRUSTED_DOMAIN_AUTH_BLOB



Günther,



I should have waited a few seconds longer as I just received feedback from the 
product group.  Below are your questions and answers.  Updates will be made to 
the technical documents in a future refresh.  Please let me know if this 
resolves your questions.



Thank you for your patience.



Bryan



Q1: Is CountOutgoingAuthInfos defining the number of CurrentOutgoingAuthInfos 
*and* PreviousOutgoingAuthInfos in total, n-times both structs or just n-times 
CurrentOutgoingAuthInfos ? In any case, is it up the user to figure out the 
number of PreviousOutgoingAuthInfos from calculation with the offsets ?



(likewise for CountIncomingAuthInfos and CurrentIncomingAuthInfos and 
PreviousIncomingAuthInfos)



A: PreviousOutgoingAuthInfos is either an array of 0 elements or an array of 
exactly the same number of elements as CurrentOutgoingAuthInfos (this number is 
CountOutgoingAuthInfos). Same applies to CountIncomingAuthInfos and  
CurrentIncomingAuthInfos and PreviousIncomingAuthInfos



Q2: "CountIncomingAuthInfos": is there a typo ? It says: "Specifies the count 
of entries present in the CountIncomingAuthInfos field"



A:  Yes, It should say "Specifies the count of entries present in the 
CurrentIncomingAuthInfos field"



Q3: Which values do ByteOffsetCurrentOutgoingAuthInfo and 
ByteOffsetPreviousOutgoingAuthInfo have in case CountOutgoingAuthInfos is 0 ?



(likewise for ByteOffsetCurrentIncomingAuthInfo and 
ByteOffsetPreviousIncomingAuthInfo and CountIncomingAuthInfos)



A: ByteOffsetCurrentOutgoingAuthInfo will always be 12 
([CountOutgoingAuthInfos][ByteOffsetCurrentOutgoingAuthInfo][ByteOffsetPreviousAuthInfos])
 as it points to where the CurrentOutgoingAuthInfo array begins (which remains 
the same irrespective of how many entries are in the array).

     In this case (when CountOutgoingAuthInfos is 0), 
ByteOffsetPreviousOutgoingAuthInfo will also be 12  as it points to where the 
PreviousOutgoingAuthInfo array begins (which is 
ByteOffsetCurrentOutgoingAuthInfo + size of CurrentIncomingAuthInfos and the 
latter is 0).







-----Original Message-----

From: Bryan Burgin

Sent: Thursday, October 07, 2010 2:03 PM

To: Guenther Deschner ([email protected])

Cc: MSSolve Case Email

Subject: RE: [REG:110092949275537] MS-LSAD 2.2.7.16 
LSAPR_TRUSTED_DOMAIN_AUTH_BLOB



Günther,



Just a quick update.  I am expecting a reply from development very soon.  As 
soon as I have a solution for you I'll pass it on.



Bryan



-----Original Message-----

From: Bryan Burgin

Sent: Wednesday, September 29, 2010 10:19 AM

To: Guenther Deschner ([email protected])

Cc: MSSolve Case Email

Subject: [REG:110092949275537] MS-LSAD 2.2.7.16 LSAPR_TRUSTED_DOMAIN_AUTH_BLOB



[Darryl Welch, Will Gregg, Eric Urbasich on bcc, FYI] [Note to case: Guenther 
and the core Samba team are working with us in-person at a Interop Lab 
engagement]



Guenther,



I am reviewing this for you and will be making a request to improve the 
document.  The case to track this issue is SR 110092949275537.



Bryan



-----Original Message-----

From: Guenther Deschner [mailto:[email protected]]

Sent: Tuesday, September 28, 2010 10:44 AM

To: Darryl Welch

Subject: MS-LSAD 2.2.7.16 LSAPR_TRUSTED_DOMAIN_AUTH_BLOB



Hi Darryl,



here are some questions for clarification for the 
LSAPR_TRUSTED_DOMAIN_AUTH_BLOB struct as defined in MS-LSAD 2.2.7.16:



* Is CountOutgoingAuthInfos defining the number of CurrentOutgoingAuthInfos 
*and* PreviousOutgoingAuthInfos in total, n-times both structs or just n-times 
CurrentOutgoingAuthInfos ? In any case, is it up the user to figure out the 
number of PreviousOutgoingAuthInfos from calculation with the offsets ?



(likewise for CountIncomingAuthInfos and CurrentIncomingAuthInfos and 
PreviousIncomingAuthInfos)



* "CountIncomingAuthInfos": is there a typo ? It says: "Specifies the count of 
entries present in the CountIncomingAuthInfos field"



* Which values do ByteOffsetCurrentOutgoingAuthInfo and 
ByteOffsetPreviousOutgoingAuthInfo have in case CountOutgoingAuthInfos is 0 ?



(likewise for ByteOffsetCurrentIncomingAuthInfo and 
ByteOffsetPreviousIncomingAuthInfo and CountIncomingAuthInfos)



Thanks,



Guenther

--

Günther Deschner                    GPG-ID: 8EE11688

Red Hat                         
[email protected]<mailto:[email protected]>

Samba Team                              [email protected]<mailto:[email protected]>
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to