java.lang.Object
net.i2p.router.transport.udp.SSU2Header.Scratch
- Enclosing class:
SSU2Header
Thread-scoped scratch for the trial decrypts, which run 3-6 times per inbound datagram on the UDP handle threads.
Safe because a trial-decrypted Header never escapes the calling method: SSU2Header.acceptTrialDecrypt(UDPPacket, Header) copies the bytes into the packet, and no caller stores the Header. One scratch per header size, because SSU2Header.Header.toString() and SSU2Header.Header.getEphemeralKey() infer the header type from the array length, and because PacketHandler may hold a handshake header while falling back to a long-header decrypt of the same packet.
Field Summary
FieldsModifier and TypeFieldDescription(package private) final SSU2Header.HeaderReusable buffer for a long header.(package private) final SSU2Header.HeaderReusable buffer for a session request header.(package private) final SSU2Header.HeaderReusable buffer for a short header.(package private) final byte[]Reused bySSU2Header.decryptDestConnID(DatagramPacket, byte[]), decryptShortHeader(), encryptShortHeader().Constructor Summary
ConstructorsModifierConstructorDescriptionprivateScratch()Per-thread scratch headers and xor buffer for header protection.Method Summary
Field Details
session
Reusable buffer for a session request header.longHdr
Reusable buffer for a long header.shortHdr
Reusable buffer for a short header.xor
final byte[] xorReused bySSU2Header.decryptDestConnID(DatagramPacket, byte[]), decryptShortHeader(), encryptShortHeader().
Constructor Details
Scratch
private Scratch()Per-thread scratch headers and xor buffer for header protection.