From b64dcad0bdd8e21f1e579c276d3d72e562fea93b Mon Sep 17 00:00:00 2001
From: dev
+ This document describes some data types common to all I2P-protocols, like I2NP, I2CP, NTCP, etc.
+
+ Represents a nonnegative integer.
+
+ 1 or more bytes in network byte order representing an unsigned integer
+
+ The number of milliseconds since midnight on January 1, 1970 in the GMT timezone.
+ If the number is 0, the date is undefined or null.
+
+ 8 byte Integer
+
+ Represents a UTF-8 encoded string.
+
+ 1 or more bytes where the first byte is the number of bytes(not characters!) in the string and the remaining 0-255 bytes are the non-null terminated UTF-8 encoded character array
+
+ A boolean value, supporting null/unknown representation
+ 0=false, 1=true, 2=unknown/null
+
+ 1 byte Integer
+
+ This structure is used in ElGamal encryption, representing only the exponent, not the primes, which are constant and defined in the appropiate spec.
+
+ 256 byte Integer
+
+ This structure is used in ElGama decryption, representing only the exponent, not the primes which are constant and defined in the appropiate spec.
+
+ 256 byte Integer
+
+ This structure is used for AES256 encryption and decryption.
+
+ 32 byte Integer
+
+ This structure is used for verifying DSA signatures.
+
+ 256 byte Integer
+
+ This structure is used for creating DSA signatures.
+
+ 20 byte Integer
+
+ This structure represents the DSA signature of some data.
+
+ 40 byte Integer
+
+ Represents the SHA256 of some data.
+
+ 32 bytes
+
+ A certificate is a container for various receipts or proof of works used throughout the I2P network.
+
+ 1 byte Integer specifying certificate type, followed by a 2 Integer specifying the size of the certificate payload, then that many bytes.
+Data types Specification
+Integer
+Description
+Contents
+Date
+Description
+Contents
+String
+Description
+Contents
+
+
Description
+Contents
+PublicKey
+Description
+Contents
+PrivateKey
+Description
+Contents
+SessionKey
+Description
+Contents
+SigningPublicKey
+Description
+Contents
+SigningPrivateKey
+Description
+Contents
+Signature
+Description
+Contents
+Hash
+Description
+Contents
+Certificate
+Description
+Contents
+
+{% filter escape %}
++----+----+----+----+----+--//
+|type| length | payload
++----+----+----+----+----+--//
+
+type :: Integer
+ length -> 1 byte
+
+ case 0 -> NULL
+ case 1 -> HASHCASH
+ case 2 -> HIDDEN
+ case 3 -> SIGNED
+ case 4 -> MULTIPLE
+
+length :: Integer
+ length -> 2 bytes
+
+payload :: data
+ length -> $length bytes
+{% endfilter %}
+
+
+
+{% endblock %}
diff --git a/www.i2p2/pages/how_networkdatabase.html b/www.i2p2/pages/how_networkdatabase.html
index 1cf133a8..bfa2c3ad 100644
--- a/www.i2p2/pages/how_networkdatabase.html
+++ b/www.i2p2/pages/how_networkdatabase.html
@@ -588,4 +588,7 @@ and we are well-positioned to react quickly
should the need arise.