package org.limewire.security.id; import java.math.BigInteger; import java.security.PublicKey; import org.limewire.io.GUID; /** * An Identity of a node includes 4 fields: * the node's signature public key * the node's GUID generated using the public key * the node's Diffie-Hellman public component for key agreement * a signature covering the above fields. * * All the 4 fields are public information and should all be sent to * remote nodes if requested. */ public interface Identity { /** * @return the local node's secure GUID */ public abstract GUID getGuid(); /** * @return the local node's signature public key */ public abstract PublicKey getPublicSignatureKey(); /** * @return the local node's Diffie-Hellman public component */ public abstract BigInteger getPublicDiffieHellmanComponent(); /** * @return the local node's signature on the other fields of the identity. */ public abstract byte[] getSignature(); }