• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java CircuitNode类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.subgraph.orchid.CircuitNode的典型用法代码示例。如果您正苦于以下问题:Java CircuitNode类的具体用法?Java CircuitNode怎么用?Java CircuitNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



CircuitNode类属于com.subgraph.orchid包,在下文中一共展示了CircuitNode类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: sendRelayCellTo

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
void sendRelayCellTo(RelayCell cell, CircuitNode targetNode) {
	relaySendLock.lock();
	try {
		logRelayCell("Sending:     ", cell);
		cell.setLength();
		targetNode.updateForwardDigest(cell);
		cell.setDigest(targetNode.getForwardDigestBytes());

		for(CircuitNode node = targetNode; node != null; node = node.getPreviousNode())
			node.encryptForwardCell(cell);

		if(cell.getRelayCommand() == RelayCell.RELAY_DATA) 
			targetNode.waitForSendWindowAndDecrement();
		
		sendCell(cell);
	} finally {
		relaySendLock.unlock();
	}
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:20,代码来源:CircuitIO.java


示例2: sendRelayCellTo

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
void sendRelayCellTo(RelayCell cell, CircuitNode targetNode) {
	synchronized(relaySendLock) {
		logRelayCell("Sending:     ", cell);
		cell.setLength();
		targetNode.updateForwardDigest(cell);
		cell.setDigest(targetNode.getForwardDigestBytes());

		for(CircuitNode node = targetNode; node != null; node = node.getPreviousNode())
			node.encryptForwardCell(cell);

		if(cell.getRelayCommand() == RelayCell.RELAY_DATA) 
			targetNode.waitForSendWindowAndDecrement();
		
		sendCell(cell);
	}
}
 
开发者ID:HashEngineering,项目名称:quarkcoinj,代码行数:17,代码来源:CircuitIO.java


示例3: extendTo

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
CircuitNode extendTo() {
	final byte[] onion = kex.createOnionSkin();
	if(finalRouterSupportsExtend2()) {
		logger.fine("Extending circuit to "+ router.getNickname() + " with NTor inside RELAY_EXTEND2");
		return extendWithExtend2(onion);
	} else {
		logger.fine("Extending circuit to "+ router.getNickname() + " with NTor inside RELAY_EXTEND");
		return extendWithTunneledExtend(onion);
	}
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:11,代码来源:NTorCircuitExtender.java


示例4: processExtended2

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNode processExtended2(RelayCell cell) {
	final int payloadLength = cell.getShort();
	if(payloadLength > cell.cellBytesRemaining()) {
		throw new TorException("Incorrect payload length value in RELAY_EXTENED2 cell");
	}
	byte[] payload = new byte[payloadLength];
	cell.getByteArray(payload);

	return processPayload(payload);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:11,代码来源:NTorCircuitExtender.java


示例5: processPayload

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNode processPayload(byte[] payload) {
	final byte[] keyMaterial = new byte[CircuitNodeCryptoState.KEY_MATERIAL_SIZE];
	final byte[] verifyDigest = new byte[TorMessageDigest.TOR_DIGEST_SIZE];
	if(!kex.deriveKeysFromHandshakeResponse(payload, keyMaterial, verifyDigest)) {
		return null;
	}
	return extender.createNewNode(router, keyMaterial, verifyDigest);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:9,代码来源:NTorCircuitExtender.java


示例6: buildCircuit

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private void buildCircuit(Router firstRouter) throws TorException {
	notifyInitialization();
	final CircuitNode firstNode = extender.createFastTo(firstRouter);
	creationRequest.nodeAdded(firstNode);
	
	for(int i = 1; i < creationRequest.getPathLength(); i++) {
		final CircuitNode extendedNode = extender.extendTo(creationRequest.getPathElement(i));
		creationRequest.nodeAdded(extendedNode);
	}
	creationRequest.circuitBuildCompleted(circuit);
	notifyDone();
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:13,代码来源:CircuitBuildTask.java


示例7: pathToString

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
protected String pathToString() {
	final StringBuilder sb = new StringBuilder();
	sb.append("[");
	for(CircuitNode node: nodeList) {
		if(sb.length() > 1)
			sb.append(",");
		sb.append(node.toString());
	}
	sb.append("]");
	return sb.toString();
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:12,代码来源:CircuitImpl.java


示例8: RelayCellImpl

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
public RelayCellImpl(CircuitNode node, int circuit, int stream, int relayCommand, boolean isRelayEarly) {
	super(circuit, (isRelayEarly) ? (Cell.RELAY_EARLY) : (Cell.RELAY));
	this.circuitNode = node;
	this.relayCommand = relayCommand;
	this.streamId = stream;
	this.isOutgoing = true;
	putByte(relayCommand);	// Command
	putShort(0);			// 'Recognized'
	putShort(stream);		// Stream
	putInt(0);				// Digest
	putShort(0);			// Length	
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:13,代码来源:RelayCellImpl.java


示例9: CircuitNodeImpl

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNodeImpl(Router router, CircuitNode previous, CircuitNodeCryptoState cryptoState) {
	previousNode = previous;
	this.router = router;
	this.cryptoState = cryptoState;
	windowLock = new Object();
	packageWindow = CIRCWINDOW_START;
	deliverWindow = CIRCWINDOW_START;
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:9,代码来源:CircuitNodeImpl.java


示例10: connectHiddenService

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
public HiddenServiceCircuit connectHiddenService(CircuitNode node) {
	if(type != InternalType.UNUSED) {
		throw new IllegalStateException("Cannot connect hidden service from internal circuit type "+ type);
	}
	appendNode(node);
	type = InternalType.HS_CIRCUIT;
	return this;
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:9,代码来源:InternalCircuitImpl.java


示例11: receiveAndProcessCreateFastResponse

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNode receiveAndProcessCreateFastResponse(Router targetRouter, TorKeyAgreement kex) {
	final Cell cell = circuit.receiveControlCellResponse();
	if(cell == null) {
		throw new TorException("Timeout building circuit waiting for CREATE_FAST response from "+ targetRouter);
	}

	return processCreatedFastCell(targetRouter, cell, kex);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:9,代码来源:CircuitExtender.java


示例12: processCreatedFastCell

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNode processCreatedFastCell(Router targetRouter, Cell cell, TorKeyAgreement kex) {
	final byte[] payload = new byte[TorMessageDigest.TOR_DIGEST_SIZE * 2];
	final byte[] keyMaterial = new byte[CircuitNodeCryptoState.KEY_MATERIAL_SIZE];
	final byte[] verifyHash = new byte[TorMessageDigest.TOR_DIGEST_SIZE];
	cell.getByteArray(payload);
	if(!kex.deriveKeysFromHandshakeResponse(payload, keyMaterial, verifyHash)) {
		// XXX
		return null;
	}
	final CircuitNode node = CircuitNodeImpl.createFirstHop(targetRouter, keyMaterial, verifyHash);
	circuit.appendNode(node);
	return node;
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:14,代码来源:CircuitExtender.java


示例13: extendTo

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
CircuitNode extendTo(Router targetRouter) {
	if(circuit.getCircuitLength() == 0) {
		throw new TorException("Cannot EXTEND an empty circuit");
	}
	
	if(useNtor(targetRouter)) {
		final NTorCircuitExtender nce = new NTorCircuitExtender(this, targetRouter);
		return nce.extendTo();
	} else {
		final TapCircuitExtender tce = new TapCircuitExtender(this, targetRouter);
		return tce.extendTo();
	}
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:14,代码来源:CircuitExtender.java


示例14: nodeToName

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private String nodeToName(CircuitNode node) {
	if(node == null || node.getRouter() == null) {
		return "(null)";
	}
	final Router router = node.getRouter();
	return router.getNickname();
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:8,代码来源:CircuitExtender.java


示例15: createNewNode

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
public CircuitNode createNewNode(Router r, byte[] keyMaterial, byte[] verifyDigest) {
	final CircuitNode node = CircuitNodeImpl.createNode(r, circuit.getFinalCircuitNode(), keyMaterial, verifyDigest);
	logger.fine("Adding new circuit node for "+ r.getNickname());
	circuit.appendNode(node);
	return node;

}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:8,代码来源:CircuitExtender.java


示例16: getFinalRouter

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
Router getFinalRouter() {
	final CircuitNode node = circuit.getFinalCircuitNode();
	if(node != null) {
		return node.getRouter();
	} else {
		return null;
	}
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:9,代码来源:CircuitExtender.java


示例17: decryptRelayCell

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private RelayCell decryptRelayCell(Cell cell) {
	for(CircuitNode node: circuit.getNodeList()) {
		if(node.decryptBackwardCell(cell)) {
			return RelayCellImpl.createFromCell(node, cell);
		}
	}
	destroyCircuit();
	throw new TorException("Could not decrypt relay cell");
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:10,代码来源:CircuitIO.java


示例18: extendTo

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
public CircuitNode extendTo() {
	logger.fine("Extending to "+ router.getNickname() + " with TAP");
	final RelayCell cell = createRelayExtendCell();
	extender.sendRelayCell(cell);
	final RelayCell response = extender.receiveRelayResponse(RelayCell.RELAY_EXTENDED, router);
	if(response == null) {
		return null;
	}
	return processExtendResponse(response);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:11,代码来源:TapCircuitExtender.java


示例19: processExtendResponse

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
private CircuitNode processExtendResponse(RelayCell response) {
	final byte[] handshakeResponse = new byte[TorTapKeyAgreement.DH_LEN + TorMessageDigest.TOR_DIGEST_SIZE];
	response.getByteArray(handshakeResponse);
	
	final byte[] keyMaterial = new byte[CircuitNodeCryptoState.KEY_MATERIAL_SIZE];
	final byte[] verifyDigest = new byte[TorMessageDigest.TOR_DIGEST_SIZE];
	if(!kex.deriveKeysFromHandshakeResponse(handshakeResponse, keyMaterial, verifyDigest)) {
		return null;
	}
	return extender.createNewNode(router, keyMaterial, verifyDigest);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:12,代码来源:TapCircuitExtender.java


示例20: StreamImpl

import com.subgraph.orchid.CircuitNode; //导入依赖的package包/类
StreamImpl(CircuitImpl circuit, CircuitNode targetNode, int streamId, boolean autoclose) {
	this.circuit = circuit;
	this.targetNode = targetNode;
	this.streamId = streamId;
	this.autoclose = autoclose;
	this.inputStream = new TorInputStream(this);
	this.outputStream = new TorOutputStream(this);
	packageWindow = STREAMWINDOW_START;
	deliverWindow = STREAMWINDOW_START;
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:11,代码来源:StreamImpl.java



注:本文中的com.subgraph.orchid.CircuitNode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java MutableXMLStreamBuffer类代码示例发布时间:2022-05-23
下一篇:
Java SupportMapFragment类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap