private AuthenticationVerifier detachAuthentication2(NdrBuffer buffer) throws IOException { try { //NdrBuffer buffer = ndr.getBuffer(); buffer.setIndex(ConnectionOrientedPdu.AUTH_LENGTH_OFFSET); int length = buffer.dec_ndr_short();//ndr.readUnsignedShort(); // auth body size int index = 20; buffer.setIndex(index); //exactly at the auth type. AuthenticationVerifier verifier = new AuthenticationVerifier(length); verifier.decode(ndr, buffer); buffer.setIndex(index + 2); // auth padding length = index - buffer.dec_ndr_small();//ndr.readUnsignedSmall(); buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); buffer.enc_ndr_short(length); buffer.enc_ndr_short(0); //ndr.writeUnsignedShort(length); //ndr.writeUnsignedShort(0); buffer.setIndex(length); return verifier; } catch (Exception ex) { throw new IOException("Error stripping authentication from PDU: " + ex); } }
private AuthenticationVerifier detachAuthentication2(NdrBuffer buffer) throws IOException { try { //NdrBuffer buffer = ndr.getBuffer(); buffer.setIndex(ConnectionOrientedPdu.AUTH_LENGTH_OFFSET); int length = buffer.dec_ndr_short();//ndr.readUnsignedShort(); // auth body size int index = 20; buffer.setIndex(index); //exactly at the auth type. AuthenticationVerifier verifier = new AuthenticationVerifier(length); verifier.decode(ndr, buffer); buffer.setIndex(index + 2); // auth padding length = index - buffer.dec_ndr_small();//ndr.readUnsignedSmall(); buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); buffer.enc_ndr_short(length); buffer.enc_ndr_short(0); //ndr.writeUnsignedShort(length); //ndr.writeUnsignedShort(0); buffer.setIndex(length); return verifier; } catch (Exception ex) { throw new IOException("Error stripping authentication from PDU: " + ex); } }
private AuthenticationVerifier detachAuthentication2 ( NdrBuffer buffer ) throws IOException { try { //NdrBuffer buffer = ndr.getBuffer(); buffer.setIndex ( ConnectionOrientedPdu.AUTH_LENGTH_OFFSET ); int length = buffer.dec_ndr_short ();//ndr.readUnsignedShort(); // auth body size int index = 20; buffer.setIndex ( index ); //exactly at the auth type. AuthenticationVerifier verifier = new AuthenticationVerifier ( length ); verifier.decode ( ndr, buffer ); buffer.setIndex ( index + 2 ); // auth padding length = index - buffer.dec_ndr_small ();//ndr.readUnsignedSmall(); buffer.setIndex ( ConnectionOrientedPdu.FRAG_LENGTH_OFFSET ); buffer.enc_ndr_short ( length ); buffer.enc_ndr_short ( 0 ); //ndr.writeUnsignedShort(length); //ndr.writeUnsignedShort(0); buffer.setIndex ( length ); return verifier; } catch ( Exception ex ) { throw new IOException ( "Error stripping authentication from PDU: " + ex ); } }
private AuthenticationVerifier detachAuthentication(NdrBuffer buffer) throws IOException { try { buffer.setIndex(ConnectionOrientedPdu.AUTH_LENGTH_OFFSET); int length = buffer.dec_ndr_short();//ndr.readUnsignedShort(); // auth body size buffer.setIndex(index); AuthenticationVerifier verifier = new AuthenticationVerifier(length); verifier.decode(ndr, buffer); buffer.setIndex(index + 2); // auth padding buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); buffer.enc_ndr_short(length); buffer.enc_ndr_short(0); buffer.setIndex(length); if (logger.isLoggable(Level.FINEST))
private AuthenticationVerifier detachAuthentication(NdrBuffer buffer) throws IOException { try { buffer.setIndex(ConnectionOrientedPdu.AUTH_LENGTH_OFFSET); int length = buffer.dec_ndr_short();//ndr.readUnsignedShort(); // auth body size buffer.setIndex(index); AuthenticationVerifier verifier = new AuthenticationVerifier(length); verifier.decode(ndr, buffer); buffer.setIndex(index + 2); // auth padding buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); buffer.enc_ndr_short(length); buffer.enc_ndr_short(0); buffer.setIndex(length); if (logger.isLoggable(Level.FINEST))
buffer.setIndex ( ConnectionOrientedPdu.AUTH_LENGTH_OFFSET ); int length = buffer.dec_ndr_short ();//ndr.readUnsignedShort(); // auth body size buffer.setIndex ( index ); AuthenticationVerifier verifier = new AuthenticationVerifier ( length ); verifier.decode ( ndr, buffer ); buffer.setIndex ( index + 2 ); // auth padding buffer.setIndex ( ConnectionOrientedPdu.FRAG_LENGTH_OFFSET ); buffer.enc_ndr_short ( length ); buffer.enc_ndr_short ( 0 ); buffer.setIndex ( length ); if ( logger.isLoggable ( Level.FINEST ) )
public void receive(NdrBuffer buffer) throws IOException { byte[] buf = buffer.getBuffer(); int off = 0, bytes_to_read, n; if (!attached) throw new RpcException("Transport not attached."); if (first) { n = in.read(buf, 0, 1024); /* TransactNamedPipe */ first = false; } else { /* Plain read */ n = (in2).read(buf, off, buf.length); } buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); bytes_to_read = buffer.dec_ndr_short(); off += n; bytes_to_read -= n; while (bytes_to_read > 0) { n = (in2).read(buf, off, bytes_to_read); off += n; bytes_to_read -= n; } buffer.length = off; }
public void receive(NdrBuffer buffer) throws IOException { byte[] buf = buffer.getBuffer(); int off = 0, bytes_to_read, n; if (!attached) throw new RpcException("Transport not attached."); if (first) { n = in.read(buf, 0, 1024); /* TransactNamedPipe */ first = false; } else { /* Plain read */ n = (in2).read(buf, off, buf.length); } buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); bytes_to_read = buffer.dec_ndr_short(); off += n; bytes_to_read -= n; while (bytes_to_read > 0) { n = (in2).read(buf, off, bytes_to_read); off += n; bytes_to_read -= n; } buffer.length = off; }
private void attachAuthentication(AuthenticationVerifier verifier) throws IOException { try { NdrBuffer buffer = ndr.getBuffer(); int length = buffer.getLength(); buffer.setIndex(length); verifier.encode(ndr, buffer); length = buffer.getLength(); buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); ndr.writeUnsignedShort(length); ndr.writeUnsignedShort(verifier.body.length); // buffer.setIndex(ConnectionOrientedPdu.FLAGS_OFFSET); // ndr.writeUnsignedSmall(0); } catch (Exception ex) { throw new IOException("Error attaching authentication to PDU: " + ex.getMessage()); } }
private void attachAuthentication(AuthenticationVerifier verifier) throws IOException { try { NdrBuffer buffer = ndr.getBuffer(); int length = buffer.getLength(); buffer.setIndex(length); verifier.encode(ndr, buffer); length = buffer.getLength(); buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); ndr.writeUnsignedShort(length); ndr.writeUnsignedShort(verifier.body.length); // buffer.setIndex(ConnectionOrientedPdu.FLAGS_OFFSET); // ndr.writeUnsignedSmall(0); } catch (Exception ex) { throw new IOException("Error attaching authentication to PDU: " + ex.getMessage()); } }
public void receive ( NdrBuffer buffer ) throws IOException { byte[] buf = buffer.getBuffer (); int off = 0, bytes_to_read, n; if ( !attached ) throw new RpcException ( "Transport not attached." ); if ( first ) { n = in.read ( buf, 0, 1024 ); /* TransactNamedPipe */ first = false; } else { /* Plain read */ n = ( in2 ).read ( buf, off, buf.length ); } buffer.setIndex ( ConnectionOrientedPdu.FRAG_LENGTH_OFFSET ); bytes_to_read = buffer.dec_ndr_short (); off += n; bytes_to_read -= n; while ( bytes_to_read > 0 ) { n = ( in2 ).read ( buf, off, bytes_to_read ); off += n; bytes_to_read -= n; } buffer.length = off; }
private void attachAuthentication ( AuthenticationVerifier verifier ) throws IOException { try { NdrBuffer buffer = ndr.getBuffer (); int length = buffer.getLength (); buffer.setIndex ( length ); verifier.encode ( ndr, buffer ); length = buffer.getLength (); buffer.setIndex ( ConnectionOrientedPdu.FRAG_LENGTH_OFFSET ); ndr.writeUnsignedShort ( length ); ndr.writeUnsignedShort ( verifier.body.length ); // buffer.setIndex(ConnectionOrientedPdu.FLAGS_OFFSET); // ndr.writeUnsignedSmall(0); } catch ( Exception ex ) { throw new IOException ( "Error attaching authentication to PDU: " + ex.getMessage () ); } }
private void verifyAndUnseal ( NetworkDataRepresentation ndr ) throws IOException buffer.setIndex ( ConnectionOrientedPdu.AUTH_LENGTH_OFFSET ); int verifierLength = ndr.readUnsignedShort (); if ( verifierLength <= 0 ) int length = verifierIndex - 8; int index = ConnectionOrientedPdu.HEADER_LENGTH; buffer.setIndex ( ConnectionOrientedPdu.TYPE_OFFSET ); switch ( ndr.readUnsignedSmall () ) buffer.setIndex ( ConnectionOrientedPdu.FLAGS_OFFSET ); if ( ( ndr.readUnsignedSmall () & ConnectionOrientedPdu.PFC_OBJECT_UUID ) != 0 ) buffer.setIndex ( ConnectionOrientedPdu.FLAGS_OFFSET ); int flags = ndr.readUnsignedSmall (); if ( ( flags & ConnectionOrientedPdu.PFC_FIRST_FRAG ) == ConnectionOrientedPdu.PFC_FIRST_FRAG && ( flags & ConnectionOrientedPdu.PFC_LAST_FRAG ) == ConnectionOrientedPdu.PFC_LAST_FRAG ) buffer.setIndex ( verifierIndex - 6 ); // auth padding field length = verifierIndex - ndr.readUnsignedSmall () - 8; buffer.setIndex ( ConnectionOrientedPdu.FRAG_LENGTH_OFFSET );
buffer.setIndex(verifierIndex); buffer.writeOctetArray(verifier, 0, verifier.length);
buffer.setIndex(verifierIndex); buffer.writeOctetArray(verifier, 0, verifier.length);
public void encode(NetworkDataRepresentation ndr, NdrBuffer dst) { ndr.setBuffer(dst); ndr.setFormat(getFormat()); writePdu(ndr); NdrBuffer buffer = ndr.getBuffer(); int length = buffer.getLength(); setFragmentLength(length); // write the header lengths, now that we know them. buffer.setIndex(FRAG_LENGTH_OFFSET); ndr.writeUnsignedShort(length); ndr.writeUnsignedShort(getAuthenticatorLength()); buffer.setIndex(length); }
buffer.setIndex ( verifierIndex ); buffer.writeOctetArray ( verifier, 0, verifier.length );
public void encode ( NetworkDataRepresentation ndr, NdrBuffer dst ) { ndr.setBuffer ( dst ); ndr.setFormat ( getFormat () ); writePdu ( ndr ); NdrBuffer buffer = ndr.getBuffer (); int length = buffer.getLength (); setFragmentLength ( length ); // write the header lengths, now that we know them. buffer.setIndex ( FRAG_LENGTH_OFFSET ); ndr.writeUnsignedShort ( length ); ndr.writeUnsignedShort ( getAuthenticatorLength () ); buffer.setIndex ( length ); }
public void encode(NetworkDataRepresentation ndr, NdrBuffer dst) { ndr.setBuffer(dst); ndr.setFormat(getFormat()); writePdu(ndr); NdrBuffer buffer = ndr.getBuffer(); int length = buffer.getLength(); setFragmentLength(length); // write the header lengths, now that we know them. buffer.setIndex(FRAG_LENGTH_OFFSET); ndr.writeUnsignedShort(length); ndr.writeUnsignedShort(getAuthenticatorLength()); buffer.setIndex(length); }
NdrBuffer buffer = ndr.getBuffer(); int length = buffer.getLength(); buffer.setIndex(length); verifier.encode(ndr, buffer); length = buffer.getLength(); buffer.setIndex(ConnectionOrientedPdu.FRAG_LENGTH_OFFSET); ndr.writeUnsignedShort(length); ndr.writeUnsignedShort(verifierLength); length -= verifierLength + 8; // less verifier + header int index = ConnectionOrientedPdu.HEADER_LENGTH; buffer.setIndex(ConnectionOrientedPdu.TYPE_OFFSET); switch (ndr.readUnsignedSmall()) { case RequestCoPdu.REQUEST_TYPE: index += 8; buffer.setIndex(ConnectionOrientedPdu.FLAGS_OFFSET); if ((ndr.readUnsignedSmall() & ConnectionOrientedPdu.PFC_OBJECT_UUID) != 0) { buffer.setIndex(ConnectionOrientedPdu.FLAGS_OFFSET); int flags = ndr.readUnsignedSmall(); if ((flags & ConnectionOrientedPdu.PFC_FIRST_FRAG) == ConnectionOrientedPdu.PFC_FIRST_FRAG &&