本文整理汇总了Java中jcifs.util.Hexdump.hexdump方法的典型用法代码示例。如果您正苦于以下问题:Java Hexdump.hexdump方法的具体用法?Java Hexdump.hexdump怎么用?Java Hexdump.hexdump使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jcifs.util.Hexdump
的用法示例。
在下文中一共展示了Hexdump.hexdump方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: SigningDigest
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public SigningDigest(byte[] macSigningKey, boolean bypass) throws SmbException {
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException ex) {
if( log.level > 0 )
ex.printStackTrace( log );
throw new SmbException( "MD5", ex );
}
this.macSigningKey = macSigningKey;
this.bypass = bypass;
this.updates = 0;
this.signSequence = 0;
if( log.level >= 5 ) {
log.println("macSigningKey:");
Hexdump.hexdump( log, macSigningKey, 0, macSigningKey.length );
}
}
示例2: run
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public void run(String str) throws Exception
{
Base64 b64 = new Base64();
byte[] bytes = b64.decode(str);
Hexdump.hexdump(System.out, bytes, 0, bytes.length);
}
示例3: update
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public void update( byte[] input, int offset, int len ) {
if( log.level >= 5 ) {
log.println( "update: " + updates + " " + offset + ":" + len );
Hexdump.hexdump( log, input, offset, Math.min( len, 256 ));
log.flush();
}
if( len == 0 ) {
return; /* CRITICAL */
}
digest.update( input, offset, len );
updates++;
}
示例4: digest
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public byte[] digest() {
byte[] b;
b = digest.digest();
if( log.level >= 5 ) {
log.println( "digest: " );
Hexdump.hexdump( log, b, 0, b.length );
log.flush();
}
updates = 0;
return b;
}
示例5: readString
import jcifs.util.Hexdump; //导入方法依赖的package包/类
String readString( byte[] src, int srcIndex, int maxLen, boolean useUnicode ) {
int len = 0;
String str = null;
try {
if( useUnicode ) {
// Unicode requires word alignment
if((( srcIndex - headerStart ) % 2 ) != 0 ) {
srcIndex++;
}
while( src[srcIndex + len] != (byte)0x00 ||
src[srcIndex + len + 1] != (byte)0x00 ) {
len += 2;
if( len > maxLen ) {
if( log.level > 0 )
Hexdump.hexdump( System.err, src, srcIndex, maxLen < 128 ? maxLen + 8 : 128 );
throw new RuntimeException( "zero termination not found" );
}
}
str = new String( src, srcIndex, len, UNI_ENCODING );
} else {
while( src[srcIndex + len] != (byte)0x00 ) {
len++;
if( len > maxLen ) {
if( log.level > 0 )
Hexdump.hexdump( System.err, src, srcIndex, maxLen < 128 ? maxLen + 8 : 128 );
throw new RuntimeException( "zero termination not found" );
}
}
str = new String( src, srcIndex, len, OEM_ENCODING );
}
} catch( UnsupportedEncodingException uee ) {
if( log.level > 1 )
uee.printStackTrace( log );
}
return str;
}
示例6: run
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public void run() {
int nameTrnId;
NameServicePacket response;
try {
while( thread == Thread.currentThread() ) {
in.setLength( RCV_BUF_SIZE );
socket.setSoTimeout( closeTimeout );
socket.receive( in );
if( log.level > 3 )
log.println( "NetBIOS: new data read from socket" );
nameTrnId = NameServicePacket.readNameTrnId( rcv_buf, 0 );
response = (NameServicePacket)responseTable.get( new Integer( nameTrnId ));
if( response == null || response.received ) {
continue;
}
synchronized( response ) {
response.readWireFormat( rcv_buf, 0 );
response.received = true;
if( log.level > 3 ) {
log.println( response );
Hexdump.hexdump( log, rcv_buf, 0, in.getLength() );
}
response.notify();
}
}
} catch(SocketTimeoutException ste) {
} catch( Exception ex ) {
if( log.level > 2 )
ex.printStackTrace( log );
} finally {
tryClose();
}
}
示例7: initSecContext
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public byte[] initSecContext(byte[] token, int offset, int len) throws SmbException {
switch (state) {
case 1:
Type1Message msg1 = new Type1Message(ntlmsspFlags, auth.getDomain(), workstation);
token = msg1.toByteArray();
if (log.level >= 4) {
log.println(msg1);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
state++;
break;
case 2:
try {
Type2Message msg2 = new Type2Message(token);
if (log.level >= 4) {
log.println(msg2);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
serverChallenge = msg2.getChallenge();
ntlmsspFlags &= (msg2.getFlags() | NtlmFlags.NTLMSSP_NEGOTIATE_SIGN);
// netbiosName = getNtlmsspListItem(token, 0x0001);
Type3Message msg3 = new Type3Message(msg2,
auth.getPassword(),
auth.getDomain(),
auth.getUsername(),
workstation,
ntlmsspFlags);
token = msg3.toByteArray();
if (log.level >= 4) {
log.println(msg3);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
if ((ntlmsspFlags & NtlmFlags.NTLMSSP_NEGOTIATE_SIGN) != 0)
signingKey = msg3.getMasterKey();
isEstablished = true;
state++;
break;
} catch (Exception e) {
throw new SmbException(e.getMessage(), e);
}
default:
throw new SmbException("Invalid state");
}
return token;
}
示例8: send
import jcifs.util.Hexdump; //导入方法依赖的package包/类
void send( NameServicePacket request, NameServicePacket response,
int timeout ) throws IOException {
Integer nid = null;
int max = NbtAddress.NBNS.length;
if (max == 0)
max = 1; /* No WINs, try only bcast addr */
synchronized( response ) {
while (max-- > 0) {
try {
synchronized( LOCK ) {
request.nameTrnId = getNextNameTrnId();
nid = new Integer( request.nameTrnId );
out.setAddress( request.addr );
out.setLength( request.writeWireFormat( snd_buf, 0 ));
response.received = false;
responseTable.put( nid, response );
ensureOpen( timeout + 1000 );
socket.send( out );
if( log.level > 3 ) {
log.println( request );
Hexdump.hexdump( log, snd_buf, 0, out.getLength() );
}
}
long start = System.currentTimeMillis();
while (timeout > 0) {
response.wait( timeout );
/* JetDirect printer can respond to regular broadcast query
* with node status so we need to check to make sure that
* the record type matches the question type and if not,
* loop around and try again.
*/
if (response.received && request.questionType == response.recordType)
return;
response.received = false;
timeout -= System.currentTimeMillis() - start;
}
} catch( InterruptedException ie ) {
throw new IOException(ie.getMessage());
} finally {
responseTable.remove( nid );
}
synchronized (LOCK) {
if (NbtAddress.isWINS( request.addr ) == false)
break;
/* Message was sent to WINS but
* failed to receive response.
* Try a different WINS server.
*/
if (request.addr == NbtAddress.getWINSAddress())
NbtAddress.switchWINS();
request.addr = NbtAddress.getWINSAddress();
}
}
}
}
示例9: negotiate
import jcifs.util.Hexdump; //导入方法依赖的package包/类
private void negotiate( int port, ServerMessageBlock resp ) throws IOException {
/* We cannot use Transport.sendrecv() yet because
* the Transport thread is not setup until doConnect()
* returns and we want to supress all communication
* until we have properly negotiated.
*/
synchronized (sbuf) {
if (port == 139) {
ssn139();
} else {
if (port == 0)
port = DEFAULT_PORT; // 445
/* These Socket constructors attempt to connect before SO_TIMEOUT can be applied
if (localAddr == null) {
socket = new Socket( address.getHostAddress(), port );
} else {
socket = new Socket( address.getHostAddress(), port, localAddr, localPort );
}
socket.setSoTimeout( SO_TIMEOUT );
*/
socket = new Socket();
if (localAddr != null)
socket.bind(new InetSocketAddress(localAddr, localPort));
socket.connect(new InetSocketAddress(address.getHostAddress(), port), CONN_TIMEOUT);
socket.setSoTimeout( SO_TIMEOUT );
out = socket.getOutputStream();
in = socket.getInputStream();
}
if (++mid == 32000) mid = 1;
NEGOTIATE_REQUEST.mid = mid;
int n = NEGOTIATE_REQUEST.encode( sbuf, 4 );
Encdec.enc_uint32be( n & 0xFFFF, sbuf, 0 ); /* 4 byte ssn msg header */
if (log.level >= 4) {
log.println( NEGOTIATE_REQUEST );
if (log.level >= 6) {
Hexdump.hexdump( log, sbuf, 4, n );
}
}
out.write( sbuf, 0, 4 + n );
out.flush();
/* Note the Transport thread isn't running yet so we can
* read from the socket here.
*/
if (peekKey() == null) /* try to read header */
throw new IOException( "transport closed in negotiate" );
int size = Encdec.dec_uint16be( sbuf, 2 ) & 0xFFFF;
if (size < 33 || (4 + size) > sbuf.length ) {
throw new IOException( "Invalid payload size: " + size );
}
readn( in, sbuf, 4 + 32, size - 32 );
resp.decode( sbuf, 4 );
if (log.level >= 4) {
log.println( resp );
if (log.level >= 6) {
Hexdump.hexdump( log, sbuf, 4, n );
}
}
}
}
示例10: doRecv
import jcifs.util.Hexdump; //导入方法依赖的package包/类
protected void doRecv( Response response ) throws IOException {
ServerMessageBlock resp = (ServerMessageBlock)response;
resp.useUnicode = useUnicode;
resp.extendedSecurity = (capabilities & CAP_EXTENDED_SECURITY) == CAP_EXTENDED_SECURITY;
synchronized (BUF) {
System.arraycopy( sbuf, 0, BUF, 0, 4 + HEADER_LENGTH );
int size = Encdec.dec_uint16be( BUF, 2 ) & 0xFFFF;
if (size < (HEADER_LENGTH + 1) || (4 + size) > rcv_buf_size ) {
throw new IOException( "Invalid payload size: " + size );
}
int errorCode = Encdec.dec_uint32le( BUF, 9 ) & 0xFFFFFFFF;
if (resp.command == ServerMessageBlock.SMB_COM_READ_ANDX &&
(errorCode == 0 ||
errorCode == 0x80000005)) { // overflow indicator normal for pipe
SmbComReadAndXResponse r = (SmbComReadAndXResponse)resp;
int off = HEADER_LENGTH;
/* WordCount thru dataOffset always 27 */
readn( in, BUF, 4 + off, 27 ); off += 27;
resp.decode( BUF, 4 );
/* EMC can send pad w/o data */
int pad = r.dataOffset - off;
if (r.byteCount > 0 && pad > 0 && pad < 4)
readn( in, BUF, 4 + off, pad);
if (r.dataLength > 0)
readn( in, r.b, r.off, r.dataLength ); /* read direct */
} else {
readn( in, BUF, 4 + 32, size - 32 );
resp.decode( BUF, 4 );
if (resp instanceof SmbComTransactionResponse) {
((SmbComTransactionResponse)resp).nextElement();
}
}
/* Verification fails (w/ W2K3 server at least) if status is not 0. This
* suggests MS doesn't compute the signature (correctly) for error responses
* (perhaps for DOS reasons).
*/
if (digest != null && resp.errorCode == 0) {
digest.verify( BUF, 4, resp );
}
if (log.level >= 4) {
log.println( response );
if (log.level >= 6) {
Hexdump.hexdump( log, BUF, 4, size );
}
}
}
}
示例11: initSecContext
import jcifs.util.Hexdump; //导入方法依赖的package包/类
public byte[] initSecContext(byte[] token, int offset, int len) throws SmbException {
switch (state) {
case 1:
Type1Message msg1 = new Type1Message(ntlmsspFlags, auth.getDomain(), workstation);
token = msg1.toByteArray();
if (log.level >= 4) {
log.println(msg1);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
state++;
break;
case 2:
try {
Type2Message msg2 = new Type2Message(token);
if (log.level >= 4) {
log.println(msg2);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
serverChallenge = msg2.getChallenge();
ntlmsspFlags &= msg2.getFlags();
// netbiosName = getNtlmsspListItem(token, 0x0001);
Type3Message msg3 = new Type3Message(msg2,
auth.getPassword(),
auth.getDomain(),
auth.getUsername(),
workstation,
ntlmsspFlags);
token = msg3.toByteArray();
if (log.level >= 4) {
log.println(msg3);
if (log.level >= 6)
Hexdump.hexdump(log, token, 0, token.length);
}
if ((ntlmsspFlags & NtlmFlags.NTLMSSP_NEGOTIATE_SIGN) != 0)
signingKey = msg3.getMasterKey();
isEstablished = true;
state++;
break;
} catch (Exception e) {
throw new SmbException(e.getMessage(), e);
}
default:
throw new SmbException("Invalid state");
}
return token;
}