All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.subgraph.orchid.ConsensusDocument Maven / Gradle / Ivy

The newest version!
package com.subgraph.orchid;

import java.util.List;
import java.util.Set;

import com.subgraph.orchid.data.HexDigest;
import com.subgraph.orchid.data.Timestamp;

public interface ConsensusDocument extends Document {
	enum ConsensusFlavor { NS, MICRODESC };
	enum SignatureStatus { STATUS_VERIFIED, STATUS_FAILED, STATUS_NEED_CERTS };
	
	interface RequiredCertificate {
		int getDownloadFailureCount();
		void incrementDownloadFailureCount();
		HexDigest getAuthorityIdentity();
		HexDigest getSigningKey();
	}
	
	ConsensusFlavor getFlavor();
	Timestamp getValidAfterTime();
	Timestamp getFreshUntilTime();
	Timestamp getValidUntilTime();
	int getConsensusMethod();
	int getVoteSeconds();
	int getDistSeconds();
	Set getClientVersions();
	Set getServerVersions();
	boolean isLive();
	List getRouterStatusEntries();
	
	SignatureStatus verifySignatures();
	Set getRequiredCertificates();
	
	HexDigest getSigningHash();
	HexDigest getSigningHash256();
	
	int getCircWindowParameter();
	int getWeightScaleParameter();
	
	int getBandwidthWeight(String tag);
	
	boolean getUseNTorHandshake();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy