/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.node; import freenet.crypt.BlockCipher; /** * Class representing a single session key. * @author Matthew Toseland <toad@amphibian.dyndns.org> (0xE43DA450) */ public class SessionKey { /** Parent PeerNode */ public final PeerNode pn; /** Cipher to encrypt outgoing packets with */ public final BlockCipher outgoingCipher; /** Key for outgoingCipher, so far for debugging */ public final byte[] outgoingKey; /** Cipher to decrypt incoming packets */ public final BlockCipher incommingCipher; /** Key for incommingCipher, so far for debugging */ public final byte[] incommingKey; public final BlockCipher ivCipher; public final byte[] ivNonce; public final byte[] hmacKey; final long trackerID; public final NewPacketFormatKeyContext packetContext; SessionKey(PeerNode parent, BlockCipher outgoingCipher, byte[] outgoingKey, BlockCipher incommingCipher, byte[] incommingKey, BlockCipher ivCipher, byte[] ivNonce, byte[] hmacKey, NewPacketFormatKeyContext context, long trackerID) { this.pn = parent; this.outgoingCipher = outgoingCipher; this.outgoingKey = outgoingKey; this.incommingCipher = incommingCipher; this.incommingKey = incommingKey; this.ivCipher = ivCipher; this.ivNonce = ivNonce; this.hmacKey = hmacKey; this.packetContext = context; this.trackerID = trackerID; } public void disconnected() { packetContext.disconnected(); } }