Packages that use PublicKey
Package
Description
Internal implementation of the I2P client SDK - the client side of the Invisible Internet Client Protocol (I2CP), separating implementation from the interfaces in
net.i2p.client. Core cryptographic primitives used throughout I2P: symmetric ciphers (AES, ChaCha20), hashes (SHA-1, SHA-256, SHA-384, SHA-512), HMAC and HKDF key derivation, the ElGamal and DSA/EdDSA/RedDSA engines, key and certificate utilities, and the entropy harvester.
X25519 elliptic curve Diffie-Hellman key exchange (RFC 7748), wrapping Noise's Curve25519 operations with Java Security API parameter specifications.
Common data structures used by the I2P protocols: Destination, LeaseSet, PublicKey, Signature, Certificate and their friends.
Low-level messages sent between routers - the Invisible Internet Network Protocol (I2NP).
The I2P router application handles I2P network communication.
Router-specific cryptography: ElGamal+AES garlic encryption (ElGamalAESEngine), session key and tag caching for repeated peer communication (TransientSessionKeyManager), router-family shared keys (FamilyKeyCrypto), and the ratchet and pqc subpackages.
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
Garlic message creation, parsing and handling, and the outbound message jobs: one-shot sends, source routing and delivery status handling.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
The I2P startup package loads configuration when I2P is started.
Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Uses of PublicKey in net.i2p.client.impl
Fields in net.i2p.client.impl with type parameters of type PublicKeyModifier and TypeFieldDescriptionRequestLeaseSetMessageHandler.LeaseInfo._pubKeysThe encryption public keys of the destination.Methods in net.i2p.client.impl that return PublicKeyModifier and TypeMethodDescriptionRequestLeaseSetMessageHandler.LeaseInfo.getPublicKey()First public key; returns the first when multiple are present.Methods in net.i2p.client.impl that return types with arguments of type PublicKeyModifier and TypeMethodDescriptionRequestLeaseSetMessageHandler.LeaseInfo.getPublicKeys()The blinded public keys.Uses of PublicKey in net.i2p.crypto
Fields in net.i2p.crypto declared as PublicKeyMethods in net.i2p.crypto that return PublicKeyModifier and TypeMethodDescriptionKeyPair.getPublic()Public key of this keypair.static PublicKeyKeyGenerator.getPublicKey(PrivateKey priv) Convert a PrivateKey to its corresponding PublicKey.Methods in net.i2p.crypto with parameters of type PublicKeyModifier and TypeMethodDescriptionSessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key) Retrieve the next available session tag for identifying the use of the given key when communicating with the target.SessionKeyManager.createSession(PublicKey target) Generate a new session key and associate it with the specified target.voidSessionKeyManager.createSession(PublicKey target, SessionKey key) Associate a new session key with the specified target.byte[]Encrypt the data to the public key.voidMark all of the tags delivered to the target up to this point as invalid, since the peer has failed to respond when they should have.voidSessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts) Fail tags for the given target, key, and tag set handle.intSessionKeyManager.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are available.longSessionKeyManager.getAvailableTimeLeft(PublicKey target, SessionKey key) Determine how long the available tags will be available for before expiring, in milliseconds.SessionKeyManager.getCurrentKey(PublicKey target) Retrieve the session key currently associated with encryption to the target, or null if a new session key should be generated.SessionKeyManager.getCurrentOrNewKey(PublicKey target) Retrieve the session key currently associated with encryption to the target.booleanSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key) Determine if tags should be sent to the target.booleanSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) Determine if tags should be sent to the target with the specified threshold.voidSessionKeyManager.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) Acknowledge tags for the given target, key, and tag set handle.SessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) Take note of the fact that the given sessionTags associated with the key for encryption to the target have definitely been received at the target (aka call this method after receiving an ack to a message delivering them).Constructors in net.i2p.crypto with parameters of type PublicKeyModifierConstructorDescriptionKeyPair(PublicKey publicKey, PrivateKey privateKey) Non-null, same EncType as privateKey.Uses of PublicKey in net.i2p.crypto.x25519
Methods in net.i2p.crypto.x25519 with parameters of type PublicKeyModifier and TypeMethodDescriptionstatic SessionKeyX25519DH.dh(PrivateKey priv, PublicKey pub) Curve25519 Diffie-Hellman: computes the shared secret for a private/public key pair.Uses of PublicKey in net.i2p.data
Fields in net.i2p.data declared as PublicKeyModifier and TypeFieldDescriptionprotected PublicKeyLeaseSet._encryptionKeyEncryption public key for the destination.private PublicKeyPrivateKey._pubKeyCache of the matching public key, derived on first use.protected PublicKeyKeysAndCert._publicKeyPublic encryption key.Fields in net.i2p.data with type parameters of type PublicKeyModifier and TypeFieldDescriptionPublicKey._cacheShared cache of parsed keys.LeaseSet2._encryptionKeysOnly used if more than one key, otherwise null.Methods in net.i2p.data that return PublicKeyModifier and TypeMethodDescriptionstatic PublicKeyPublicKey.create(byte[] data, int off) Pull from cache or return new.static PublicKeyPublicKey.create(InputStream in) Pull from cache or return new.EncryptedLeaseSet.getEncryptionKey(Set<EncType> supported) If more than one key, return the first supported one.LeaseSet.getEncryptionKey()Encryption public key.LeaseSet.getEncryptionKey(Set<EncType> supported) If more than one key, return the first supported one.LeaseSet2.getEncryptionKey()If more than one key, return the first supported one.LeaseSet2.getEncryptionKey(Set<EncType> supported) If more than one key, return the first supported one.KeysAndCert.getPublicKey()Valid for RouterIdentities.PrivateKey.toPublic()Derives the PublicKey corresponding to the secret contents of this PrivateKey.(package private) PublicKeyPublicKey.toTypedKey(KeyCertificate kcert) Up-convert this from an untyped (type 0) PK to a typed PK based on the Key Cert given.Methods in net.i2p.data that return types with arguments of type PublicKeyModifier and TypeMethodDescriptionEncryptedLeaseSet.getEncryptionKeys()Null if not decrypted.LeaseSet2.getEncryptionKeys()This returns all the keys.Methods in net.i2p.data with parameters of type PublicKeyModifier and TypeMethodDescriptionvoidLeaseSet2.addEncryptionKey(PublicKey key) Add an encryption key.voidMetaLeaseSet.addEncryptionKey(PublicKey key) UnsupportedOperationException always.voidLeaseSet.setEncryptionKey(PublicKey encryptionKey) Encryption public key for this leaseset.voidMetaLeaseSet.setEncryptionKey(PublicKey key) UnsupportedOperationException always.voidKeysAndCert.setPublicKey(PublicKey key) Public key to set.Constructors in net.i2p.data with parameters of type PublicKeyModifierConstructorDescriptionprivateDestination(PublicKey pk, SigningPublicKey sk, Certificate c, byte[] padding) Creates a destination from its components.KeyCertificate(SigningPublicKey spk, PublicKey pk) A KeyCertificate with enc type from the given public key, and the signature type and extra data from the given public key.PrivateKey(EncType type, byte[] data, PublicKey pubKey) Constructor with type, data, and cached public key.PrivateKeyFile(File file, PublicKey pubkey, SigningPublicKey spubkey, Certificate cert, PrivateKey pk, SigningPrivateKey spk) Create a new PrivateKeyFile from individual key components.PrivateKeyFile(File file, PublicKey pubkey, SigningPublicKey spubkey, Certificate cert, PrivateKey pk, SigningPrivateKey spk, byte[] padding) Create a new PrivateKeyFile from individual key components with padding.Uses of PublicKey in net.i2p.data.i2np
Fields in net.i2p.data.i2np declared as PublicKeyModifier and TypeFieldDescriptionprivate PublicKeyDatabaseLookupMessage._ratchetPubKeyRatchet key to encrypt the reply to.Methods in net.i2p.data.i2np that return PublicKeyModifier and TypeMethodDescriptionDatabaseLookupMessage.getRatchetPublicKey()The included session key or null if unset.Methods in net.i2p.data.i2np with parameters of type PublicKeyModifier and TypeMethodDescriptionBuildRequestRecord.encryptECIESRecord(RouterContext ctx, PublicKey toKey, Hash toPeer) Encrypts the record using ECIES.BuildRequestRecord.encryptRecord(I2PAppContext ctx, PublicKey toKey, Hash toPeer) Encrypts the record using ElGamal.voidDatabaseLookupMessage.setReplySession(PublicKey pubKey) Sets the reply session's ratchet public key.Uses of PublicKey in net.i2p.router
Fields in net.i2p.router declared as PublicKeyMethods in net.i2p.router that return PublicKeyMethods in net.i2p.router with parameters of type PublicKeyModifier and TypeMethodDescriptionvoidKeyManager.setKeys(PublicKey key1, PrivateKey key2, SigningPublicKey key3, SigningPrivateKey key4) Configure the router's keys.Uses of PublicKey in net.i2p.router.crypto
Fields in net.i2p.router.crypto declared as PublicKeyModifier and TypeFieldDescriptionprivate final PublicKeyTransientSessionKeyManager.OutboundSession._targetThe peer's public key.Fields in net.i2p.router.crypto with type parameters of type PublicKeyModifier and TypeFieldDescriptionprivate final Map<PublicKey, TransientSessionKeyManager.OutboundSession> TransientSessionKeyManager._outboundSessionsMap allowing us to go from the targeted PublicKey to the OutboundSession used.Methods in net.i2p.router.crypto that return PublicKeyModifier and TypeMethodDescriptionTransientSessionKeyManager.OutboundSession.getTarget()The peer this session goes to.Methods in net.i2p.router.crypto with parameters of type PublicKeyModifier and TypeMethodDescriptionTransientSessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key) Retrieve the next available session tag for identifying the use of the given key when communicating with the target.TransientSessionKeyManager.createAndReturnSession(PublicKey target, SessionKey key) Same as above but for internal use, returns OutboundSession so we don't have to do a subsequentTransientSessionKeyManager.getSession(PublicKey).voidTransientSessionKeyManager.createSession(PublicKey target, SessionKey key) Associate a new session key with the specified target.byte[]ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, SessionTag currentTag, long paddedSize) Encrypt the data to the target using the given key and deliver the specified tags No new session key This is the one called from GarlicMessageBuilder and is the primary entry point.byte[]ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, SessionTag currentTag, SessionKey newKey, long paddedSize) Encrypt the unencrypted data to the target.private byte[]ElGamalAESEngine.encryptNewSession(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, SessionKey newKey, long paddedSize) Scenario 1: Begin with 222 bytes, ElG encrypted, containing:voidTransientSessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts) Mark these tags as invalid, since the peer has failed to ack them in time.intTransientSessionKeyManager.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are available.longTransientSessionKeyManager.getAvailableTimeLeft(PublicKey target, SessionKey key) Determine how long the available tags will be available for before expiring, in milliseconds.TransientSessionKeyManager.getCurrentKey(PublicKey target) Retrieve the session key currently associated with encryption to the target, or null if a new session key should be generated.TransientSessionKeyManager.getCurrentOrNewKey(PublicKey target) Retrieve the session key currently associated with encryption to the target.TransientSessionKeyManager.getOrCreateSession(PublicKey target, SessionKey key) The session for a target with its current key brought up to date, or a new one built under key if there is none yet.TransientSessionKeyManager.getSession(PublicKey target) Returns the pending session for a target key.private voidTransientSessionKeyManager.removeSession(PublicKey target) Drops the pending session for a target key.booleanTransientSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) Whether to send a new tag set to the target.voidTransientSessionKeyManager.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) Mark these tags as acked, start to use them (if we haven't already) If the set was previously failed, it will be added back in.TransientSessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) Take note of the fact that the given sessionTags associated with the key for encryption to the target have been sent.private static StringFor debugging.Constructors in net.i2p.router.crypto with parameters of type PublicKeyModifierConstructorDescriptionOutboundSession(I2PAppContext ctx, Log log, PublicKey target, SessionKey key) Creates state for tracking one outbound ElGamal session to a single target.Uses of PublicKey in net.i2p.router.crypto.ratchet
Subclasses of PublicKey in net.i2p.router.crypto.ratchetModifier and TypeClassDescription(package private) classX25519 public key with identifier for next session key exchange in ratchet protocol.Fields in net.i2p.router.crypto.ratchet declared as PublicKeyModifier and TypeFieldDescriptionprivate final PublicKeyRatchetTagSet._remoteKeyThe peer's ratchet public key.private final PublicKeySessionKeyAndNonce._remoteKeyThe remote peer's key, for a reply.private final PublicKeyRatchetSKM.OutboundSession._targetThe peer's ratchet public key.private final PublicKeyECIESAEADEngine.PLCallback.remoteThe sender's ratchet public key.Fields in net.i2p.router.crypto.ratchet with type parameters of type PublicKeyModifier and TypeFieldDescriptionprivate final ConcurrentHashMap<PublicKey, RatchetSKM.OutboundSession> RatchetSKM._outboundSessionsMap allowing us to go from the targeted PublicKey to the OutboundSession used.private final HashMap<PublicKey, List<RatchetSKM.OutboundSession>> RatchetSKM._pendingOutboundSessionsOutbound sessions waiting for a reply, by key.Methods in net.i2p.router.crypto.ratchet that return PublicKeyModifier and TypeMethodDescriptionstatic PublicKeyElligator2.decode(byte[] representative) From javascript version documentation:static PublicKeyElligator2.decode(AtomicBoolean alternative, byte[] representative) From javascript version documentation:RatchetTagSet.getRemoteKey()The far-end's public key.SessionKeyAndNonce.getRemoteKey()For inbound ES, else null.RatchetSKM.OutboundSession.getTarget()The far-end public key this session talks to.Methods in net.i2p.router.crypto.ratchet that return types with arguments of type PublicKeyModifier and TypeMethodDescriptionprivate Map<PublicKey, Set<RatchetTagSet>> RatchetSKM.getRatchetTagSetsByPublicKey()Return a map of PublicKey to a set of inbound RatchetTagSets for that key.Methods in net.i2p.router.crypto.ratchet with parameters of type PublicKeyModifier and TypeMethodDescription(package private) voidRatchetSKM.ackRequested(PublicKey target, int id, int n) Process an ACK request.MuxedPQSKM.consumeNextAvailableTag(PublicKey target) EC/PQ.MuxedPQSKM.consumeNextAvailableTag(PublicKey target, SessionKey key) ElG only.MuxedSKM.consumeNextAvailableTag(PublicKey target) EC only.MuxedSKM.consumeNextAvailableTag(PublicKey target, SessionKey key) ElG only.RatchetSKM.consumeNextAvailableTag(PublicKey target) Takes the next outbound session tag and key for sending a message to the target.RatchetSKM.consumeNextAvailableTag(PublicKey target, SessionKey key) Not supported for this key manager.MuxedPQSKM.createSession(PublicKey target) ElG only.voidMuxedPQSKM.createSession(PublicKey target, SessionKey key) ElG only.MuxedSKM.createSession(PublicKey target) ElG only.voidMuxedSKM.createSession(PublicKey target, SessionKey key) ElG only.(package private) booleanRatchetSKM.createSession(PublicKey target, Destination d, HandshakeState state, ReplyCallback callback) Inbound or outbound.voidRatchetSKM.createSession(PublicKey target, SessionKey key) Not supported for this key manager.(package private) static final PrivateKeyECIESAEADEngine.doDH(PrivateKey privkey, PublicKey pubkey) Compute the Curve25519 Diffie-Hellman shared secret for the given key pair.byte[]Use for on-the-wire.private static byte[]Output will look like 254 random bits.byte[]Encrypt the data to the target using the given key from an anonymous source, for netdb lookups.byte[]ECIESAEADEngine.encrypt(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) Encrypt the data to the target using the given key and deliver the specified tags No new session key This is the one called from GarlicMessageBuilder and is the primary entry point.private byte[]ECIESAEADEngine.encryptExistingSession(CloveSet cloves, PublicKey target, RatchetEntry re, ReplyCallback callback, RatchetSKM keyManager) Scenario 3: Existing Session Message.private byte[]ECIESAEADEngine.encryptNewSession(CloveSet cloves, PublicKey target) Scenario 1A: New Session Message from an anonymous source.private byte[]ECIESAEADEngine.encryptNewSession(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) Scenario 1: New Session Messageprivate byte[]ECIESAEADEngine.encryptNewSessionReply(CloveSet cloves, PublicKey target, HandshakeState state, RatchetSessionTag currentTag, RatchetSKM keyManager, ReplyCallback callback) Scenario 2: New Session Reply MessagevoidMuxedPQSKM.failTags(PublicKey target, SessionKey key, TagSetHandle ts) ElG only.voidMuxedSKM.failTags(PublicKey target, SessionKey key, TagSetHandle ts) ElG only.voidRatchetSKM.failTags(PublicKey target, SessionKey key, TagSetHandle ts) Not supported for this key manager.intMuxedPQSKM.getAvailableTags(PublicKey target, SessionKey key) Delegates to the appropriate key manager by encryption type.intMuxedSKM.getAvailableTags(PublicKey target, SessionKey key) Delegates to the appropriate key manager by encryption type.intRatchetSKM.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are available.longMuxedPQSKM.getAvailableTimeLeft(PublicKey target, SessionKey key) Delegates to the appropriate key manager by encryption type.longMuxedSKM.getAvailableTimeLeft(PublicKey target, SessionKey key) Delegates to the appropriate key manager by encryption type.longRatchetSKM.getAvailableTimeLeft(PublicKey target, SessionKey key) Determine how long the available tags will be available for before expiring, in milliseconds.MuxedPQSKM.getCurrentKey(PublicKey target) ElG only.MuxedSKM.getCurrentKey(PublicKey target) ElG only.RatchetSKM.getCurrentKey(PublicKey target) Not supported for this key manager.MuxedPQSKM.getCurrentOrNewKey(PublicKey target) ElG only.MuxedSKM.getCurrentOrNewKey(PublicKey target) ElG only.RatchetSKM.getCurrentOrNewKey(PublicKey target) Not supported for this key manager.(package private) DestinationRatchetSKM.getDestination(PublicKey target) The far-end destination for a public key.private RatchetSKM.OutboundSessionRatchetSKM.getSession(PublicKey target) Returns the pending session for a target key.(package private) booleanRatchetSKM.isDuplicate(PublicKey pk) Check if a public key is a duplicate.(package private) static StringLabel a peer by the base64 hash of its public key, so the debug console can turn the cell into a router-info reference (flag, link, bandwidth) viacommSystem().renderPeerHTML().(package private) voidRatchetSKM.nextKeyReceived(PublicKey target, NextSessionKey key) Process a received next key.(package private) voidRatchetSKM.receivedACK(PublicKey target, int id, int n) Process a received ACK.(package private) voidRatchetSKM.registerCallback(PublicKey target, int id, int n, ReplyCallback callback) ACKS: Register a callback for an ACK.(package private) booleanRatchetSKM.registerTimer(PublicKey target, Destination d, SimpleTimer2.TimedEvent timer) Side effect - binds this session to the supplied destination.private voidECIESAEADEngine.setResponseTimer(PublicKey from, List<GarlicClove> cloveSet, RatchetSKM skm) Schedules the delayed reply to an NSR message.private voidECIESAEADEngine.setResponseTimerNS(PublicKey from, List<GarlicClove> cloveSet, RatchetSKM skm) Schedules the delayed reply to an NS message.booleanMuxedPQSKM.shouldSendTags(PublicKey target, SessionKey key) ElG only.booleanMuxedPQSKM.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) ElG only.booleanMuxedSKM.shouldSendTags(PublicKey target, SessionKey key) ElG only.booleanMuxedSKM.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) ElG only.booleanRatchetSKM.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) Whether to send more tags, always false here.voidMuxedPQSKM.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) ElG only.voidMuxedSKM.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) ElG only.voidRatchetSKM.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) Not supported for this key manager.MuxedPQSKM.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) ElG only.MuxedSKM.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) ElG only.RatchetSKM.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) Not supported for this key manager.private static StringFor debugging.(package private) booleanRatchetSKM.updateSession(PublicKey target, HandshakeState oldState, HandshakeState state, ReplyCallback callback, SplitKeys split) Inbound or outbound.private byte[]ECIESAEADEngine.x_encrypt(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) Encrypt the cloves to the target, selecting New Session, New Session Reply, or Existing Session encryption as appropriate.Method parameters in net.i2p.router.crypto.ratchet with type arguments of type PublicKeyModifier and TypeMethodDescriptionRatchetSKM.buildInboundRows(Map<PublicKey, Set<RatchetTagSet>> sets, long now) One row per inbound tag set of {peer, set, expires in, tags, remaining}, sorted by peer then set.Constructors in net.i2p.router.crypto.ratchet with parameters of type PublicKeyModifierConstructorDescriptionElg2KeyPair(PublicKey publicKey, PrivateKey privateKey, byte[] enc) Key pair from the given keys and the pre-encoded public key.OutboundSession(PublicKey target, Destination d, SessionKey key, HandshakeState state, ReplyCallback callback) Outbound session for the given target.PLCallback(RatchetSKM keyManager, PublicKey remoteKey) Callback for an ES payload, which unlike NS/NSR may carry an ACK to hand back to the ratchet session key manager.privateRatchetTagSet(HKDF hkdf, SessionTagListener lsnr, HandshakeState state, PublicKey remoteKey, SessionKey rootKey, SessionKey data, long date, long timeout, int tagsetid, int keyid, boolean isInbound, int minSize, int maxSize) Tag set for a ratchet session with the given keys and sizes.RatchetTagSet(HKDF hkdf, SessionTagListener lsnr, PublicKey remoteKey, SessionKey rootKey, SessionKey data, long date, int tagsetid, int keyid, int minSize, int maxSize) Inbound ES Tagset.SessionKeyAndNonce(byte[] data, int id, int nonce, PublicKey remoteKey) For inbound Existing Session.Uses of PublicKey in net.i2p.router.message
Fields in net.i2p.router.message declared as PublicKeyModifier and TypeFieldDescriptionprivate PublicKeyOutboundClientMessageOneShotJob._encryptionKeyActual target encryption key from the LS being used.private PublicKeyGarlicConfig._recipientPublicKeyKey to encrypt the clove to.Methods in net.i2p.router.message that return PublicKeyModifier and TypeMethodDescriptionGarlicConfig.getRecipientPublicKey()The public key of the router that should receive and process this clove.Methods in net.i2p.router.message with parameters of type PublicKeyModifier and TypeMethodDescriptionstatic GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag) ELGAMAL_2048 only.private static GarlicConfigOutboundClientMessageJobHelper.createGarlicConfig(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, boolean requireAck, LeaseSet bundledReplyLeaseSet, SessionKeyManager skm) Make the top-level config, with a data clove, an optional ack clove, and an optional leaseset clove.(package private) static GarlicMessageOutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, int tagsToSendOverride, int lowTagsOverride, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet, ReplyCallback callback) Build a garlic message that will be delivered to the router on which the target is located.(package private) static booleanGarlicMessageBuilder.needsTags(RouterContext ctx, PublicKey key, Hash local, int minTagOverride) ELGAMAL_2048 only; returns false for others.voidGarlicConfig.setRecipientPublicKey(PublicKey recipientPublicKey) Public key of the router to receive and process this clove.Uses of PublicKey in net.i2p.router.networkdb.kademlia
Fields in net.i2p.router.networkdb.kademlia declared as PublicKeyModifier and TypeFieldDescriptionprivate PublicKeyMessageWrapper.WrappedMessage.sentToThe recipient's public key.Constructors in net.i2p.router.networkdb.kademlia with parameters of type PublicKeyModifierConstructorDescription(package private)WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh) Wrapped message.Uses of PublicKey in net.i2p.router.startup
Methods in net.i2p.router.startup with parameters of type PublicKeyModifier and TypeMethodDescriptionprivate static CertificateCreateRouterInfoJob.createCertificate(RouterContext ctx, SigningPublicKey spk, PublicKey pk) Only called at startup viaLoadRouterInfoJoband RebuildRouterInfoJob.Uses of PublicKey in net.i2p.router.tunnel.pool
Methods in net.i2p.router.tunnel.pool with parameters of type PublicKeyModifier and TypeMethodDescriptionstatic voidBuildMessageGenerator.createRecord(int recordNum, int hop, TunnelBuildMessage msg, TunnelCreatorConfig cfg, Hash replyRouter, long replyTunnel, RouterContext ctx, PublicKey peerKey, Properties props) Place the asymmetrically encrypted record in the specified record slot, containing the hop's configuration (as well as the reply info, if it is an outbound endpoint).