/** * @param type * @return */ protected static NegotiateContextResponse createContext ( int type ) { switch ( type ) { case EncryptionNegotiateContext.NEGO_CTX_ENC_TYPE: return new EncryptionNegotiateContext(); case PreauthIntegrityNegotiateContext.NEGO_CTX_PREAUTH_TYPE: return new PreauthIntegrityNegotiateContext(); } return null; }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#getInitialCredits() */ @Override public int getInitialCredits () { return getCredit(); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#isSigningNegotiated() */ @Override public boolean isSigningNegotiated () { return isSigningRequired(); }
/** * {@inheritDoc} * * @see jcifs.internal.CommonServerMessageBlockRequest#size() */ @Override public int size () { int size = Smb2Constants.SMB2_HEADER_LENGTH + 36 + size8(2 * this.dialects.length, 4); if ( this.negotiateContexts != null ) { for ( NegotiateContextRequest ncr : this.negotiateContexts ) { size += 8 + size8(ncr.size()); } } return size8(size); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#isDFSSupported() */ @Override public boolean isDFSSupported () { return !getConfig().isDfsDisabled() && haveCapabilitiy(Smb2Constants.SMB2_GLOBAL_CAP_DFS); }
private static boolean checkEncryptionContext ( Smb2NegotiateRequest req, EncryptionNegotiateContext ec ) { if ( ec.getCiphers() == null || ec.getCiphers().length != 1 ) { log.error("Server returned no cipher selection"); return false; } EncryptionNegotiateContext rec = null; for ( NegotiateContextRequest rnc : req.getNegotiateContexts() ) { if ( rnc instanceof EncryptionNegotiateContext ) { rec = (EncryptionNegotiateContext) rnc; } } if ( rec == null ) { return false; } boolean valid = false; for ( int cipher : rec.getCiphers() ) { if ( cipher == ec.getCiphers()[ 0 ] ) { valid = true; } } if ( !valid ) { log.error("Server returned invalid cipher selection"); return false; } return true; }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#getTransactionBufferSize() */ @Override public int getTransactionBufferSize () { return getMaxTransactSize(); }
@Override public boolean isSigningEnforced () { return ( getSecurityMode() & Smb2Constants.SMB2_NEGOTIATE_SIGNING_REQUIRED ) != 0; }
/** * {@inheritDoc} * * @see jcifs.internal.smb2.ServerMessageBlock2Request#createResponse(jcifs.Configuration, * jcifs.internal.smb2.ServerMessageBlock2Request) */ @Override protected Smb2NegotiateResponse createResponse ( CIFSContext tc, ServerMessageBlock2Request<Smb2NegotiateResponse> req ) { return new Smb2NegotiateResponse(tc.getConfig()); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#canReuse(jcifs.CIFSContext, boolean) */ @Override public boolean canReuse ( CIFSContext tc, boolean forceSigning ) { return getConfig().equals(tc.getConfig()); }
/** * @param type * @return */ protected static NegotiateContextResponse createContext ( int type ) { switch ( type ) { case EncryptionNegotiateContext.NEGO_CTX_ENC_TYPE: return new EncryptionNegotiateContext(); case PreauthIntegrityNegotiateContext.NEGO_CTX_PREAUTH_TYPE: return new PreauthIntegrityNegotiateContext(); } return null; }
/** * {@inheritDoc} * * @see jcifs.internal.CommonServerMessageBlockRequest#size() */ @Override public int size () { int size = Smb2Constants.SMB2_HEADER_LENGTH + 36 + size8(2 * this.dialects.length, 4); if ( this.negotiateContexts != null ) { for ( NegotiateContextRequest ncr : this.negotiateContexts ) { size += 8 + size8(ncr.size()); } } return size8(size); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#isDFSSupported() */ @Override public boolean isDFSSupported () { return !getConfig().isDfsDisabled() && haveCapabilitiy(Smb2Constants.SMB2_GLOBAL_CAP_DFS); }
public int getRequestSecurityMode ( Smb2NegotiateResponse first ) { int securityMode = Smb2Constants.SMB2_NEGOTIATE_SIGNING_ENABLED; if ( this.signingEnforced || ( first != null && first.isSigningRequired() ) ) { securityMode = Smb2Constants.SMB2_NEGOTIATE_SIGNING_REQUIRED | Smb2Constants.SMB2_NEGOTIATE_SIGNING_ENABLED; } return securityMode; } }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#getInitialCredits() */ @Override public int getInitialCredits () { return getCredit(); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#getTransactionBufferSize() */ @Override public int getTransactionBufferSize () { return getMaxTransactSize(); }
@Override public boolean isSigningEnforced () { return ( getSecurityMode() & Smb2Constants.SMB2_NEGOTIATE_SIGNING_REQUIRED ) != 0; }
/** * {@inheritDoc} * * @see jcifs.internal.smb2.ServerMessageBlock2Request#createResponse(jcifs.Configuration, * jcifs.internal.smb2.ServerMessageBlock2Request) */ @Override protected Smb2NegotiateResponse createResponse ( CIFSContext tc, ServerMessageBlock2Request<Smb2NegotiateResponse> req ) { return new Smb2NegotiateResponse(tc.getConfig()); }
/** * {@inheritDoc} * * @see jcifs.internal.SmbNegotiationResponse#isSigningNegotiated() */ @Override public boolean isSigningNegotiated () { return isSigningRequired(); }
public int getRequestSecurityMode ( Smb2NegotiateResponse first ) { int securityMode = Smb2Constants.SMB2_NEGOTIATE_SIGNING_ENABLED; if ( this.signingEnforced || ( first != null && first.isSigningRequired() ) ) { securityMode = Smb2Constants.SMB2_NEGOTIATE_SIGNING_REQUIRED | Smb2Constants.SMB2_NEGOTIATE_SIGNING_ENABLED; } return securityMode; } }