package org.krakenapps.pcap.decoder.smb.ntparser;
import org.krakenapps.pcap.decoder.smb.SmbSession;
import org.krakenapps.pcap.decoder.smb.TransData;
import org.krakenapps.pcap.decoder.smb.ntreq.NtTransactSetSecurityDescRequest;
import org.krakenapps.pcap.decoder.smb.ntresp.NtTransactSetSecurityDescResponse;
import org.krakenapps.pcap.decoder.smb.transparser.TransParser;
import org.krakenapps.pcap.util.Buffer;
import org.krakenapps.pcap.util.ByteOrderConverter;
public class NtTransactSetSecurityDescParser implements TransParser{
@Override
public TransData parseRequest(Buffer setupBuffer , Buffer parameterBuffer, Buffer dataBuffer) {
NtTransactSetSecurityDescRequest transData = new NtTransactSetSecurityDescRequest();
//there is no use setupBuffer
//start parameterBuffer
transData.setFid(ByteOrderConverter.swap(parameterBuffer.getShort()));
transData.setReserved(ByteOrderConverter.swap(parameterBuffer.getShort()));
transData.setSecurityinformation(ByteOrderConverter.swap(parameterBuffer.getInt()));
//end of parameterBuffer
//start DataBuffer
byte []securityDescriptor = new byte[parameterBuffer.readableBytes()];
parameterBuffer.gets(securityDescriptor);
transData.setSecurityDescriptor(securityDescriptor);
// end of dataBuffer
return transData;
}
@Override
public TransData parseResponse(Buffer setupBuffer , Buffer parameterBuffer, Buffer dataBuffer , SmbSession session) {
NtTransactSetSecurityDescResponse transData = new NtTransactSetSecurityDescResponse();
// do not response
return transData;
}
}