# Package net.i2p.data

These classes define the common data structures used by the various I2P protocols.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  DataStructure | Base interface defining standard binary representation for I2P data structures.

- Class Summary
  Class | Description
  --- | ---
  Base32 | Encodes and decodes to and from Base32 notation.
  Base64 | Encodes and decodes to and from Base64 notation.
  BlindData | Cache data for EdDSA key blinding as specified in Proposal 123: New NetDb Entries.
  ByteArray | Wrap up an array of bytes so that they can be compared and placed in hashes, maps, and the like.
  Certificate | Extensible certificate system for I2P structures providing metadata and capabilities.
  DatabaseEntry | Base class for data structures stored in the I2P network database (NetDb).
  DataHelper | Comprehensive utility class for I2P data structure serialization, encoding, and manipulation.
  DataStructureImpl | Base implementation of all data structures
  DateAndFlags | A six-byte Date and 2 bytes of flags, since a Date won't encroach on the top two bytes until the year 10889.
  Destination | Defines an endpoint in the I2P network that can receive messages.
  EmptyProperties | Immutable OrderedProperties, to reduce object churn in LS2 where it's expected to be empty.
  EncryptedLeaseSet | Implementation of EncryptedLeaseSet as specified in Proposal 123: New NetDb Entries.
  Hash | SHA-256 hash implementation for I2P data identification and integrity.
  KeyCertificate | Specialized certificate for defining cryptographic key types used in I2P identities.
  KeysAndCert | Container for cryptographic keys and certificate as used by I2P identities.
  Lease | Authorization grant proving a router/tunnel may receive messages for a destination.
  Lease2 | Implementation of Lease2 as specified in Proposal 123: New NetDb Entries.
  LeaseSet | Defines the set of leases that a destination currently has available for routing messages.
  LeaseSet2 | Implementation of LeaseSet2 as specified in Proposal 123: New NetDb Entries.
  MetaLease | Implementation of MetaLease as specified in Proposal 123: New NetDb Entries.
  MetaLeaseSet | Implementation of MetaLeaseSet as specified in Proposal 123: New NetDb Entries.
  Payload | Message payload container for I2P communications with encryption support.
  PrivateKey | Cryptographic private key for asymmetric encryption in I2P.
  PrivateKeyFile | This helper class reads and writes files in the same "eepPriv.dat" format used by the client code.
  PublicKey | Cryptographic public key for asymmetric encryption in I2P.
  RoutingKeyGenerator | Interface for transforming hashes into routing keys for I2P network database operations.
  SDSCache<V extends SimpleDataStructure> | A least recently used cache with a max size, for SimpleDataStructures.
  SessionKey | Cryptographic session key for symmetric encryption in I2P.
  SessionTag | 32 bytes, usually of random data.
  Signature | Cryptographic signature implementation for I2P data structures and identity verification.
  SigningPrivateKey | Cryptographic private key for digital signature generation in I2P.
  SigningPublicKey | Cryptographic public key for digital signature verification in I2P.
  SimpleDataStructure | Base class for I2P data structures containing a single fixed-length byte array.
  TunnelId | Tunnel identifier for routing messages through a sequence of routers in I2P.
  VerifiedDestination | Extend Destination with methods to verify its Certificate.

- Exception Summary
  Exception | Description
  --- | ---
  DataFormatException | Thrown when the data was not available to read or write a DataStructure

## Package net.i2p.data Description

These classes define the common data structures used by the various I2P protocols.

This package contains the fundamental data structures that form the backbone of I2P's communication protocols, including:

- Destination: Complete I2P destination containing public keys and signing information
- LeaseSet: Routing information for establishing tunnels to destinations
- RouterInfo: Router identification and network contact information
- TunnelId: Unique identifiers for tunnel segments
- SessionKey: Encryption keys for secure communication
- Signature: Digital signatures for authentication and integrity
- Certificate: X.509-style certificates for router identification

All data structures implement proper serialization and deserialization for network transmission, with built-in validation and type safety. These classes are designed to be immutable where possible and provide efficient memory usage for high-throughput routing operations.