forked from I2P_Developers/i2p.www
markdown fixes
This commit is contained in:
@@ -798,27 +798,27 @@ The secret alpha and the blinded keys are calculated as follows:
|
|||||||
|
|
||||||
{% highlight lang='text' %}
|
{% highlight lang='text' %}
|
||||||
GENERATE_ALPHA(destination, date, secret), for all parties:
|
GENERATE_ALPHA(destination, date, secret), for all parties:
|
||||||
secret is optional, else zero-length
|
secret is optional, else zero-length
|
||||||
personalization = 12 bytes "i2pblinding1"
|
personalization = 12 bytes "i2pblinding1"
|
||||||
datestring = YYYYMMDD from the current date UTC
|
datestring = YYYYMMDD from the current date UTC
|
||||||
alpha = SHA256(personalization || SHA256(destination) || datestring || secret)
|
alpha = SHA256(personalization || SHA256(destination) || datestring || secret)
|
||||||
"clamp" the hash to make a valid Ed25519 little-endian private key:
|
"clamp" the hash to make a valid Ed25519 little-endian private key:
|
||||||
alpha[0] &= 248;
|
alpha[0] &= 248;
|
||||||
alpha[31] &= 63;
|
alpha[31] &= 63;
|
||||||
alpha[31] |= 64;
|
alpha[31] |= 64;
|
||||||
|
|
||||||
BLIND_PRIVKEY(), for the owner of the leaseset:
|
BLIND_PRIVKEY(), for the owner of the leaseset:
|
||||||
alpha = GENERATE_ALPHA(destination, date, secret)
|
alpha = GENERATE_ALPHA(destination, date, secret)
|
||||||
Take the destination's signing private key a
|
Take the destination's signing private key a
|
||||||
blinded signing private key = a' = BLIND_PRIVKEY(a, alpha) = (a + alpha) mod B
|
blinded signing private key = a' = BLIND_PRIVKEY(a, alpha) = (a + alpha) mod B
|
||||||
blinded signing public key = A' = DERIVE_PUBLIC(a')
|
blinded signing public key = A' = DERIVE_PUBLIC(a')
|
||||||
|
|
||||||
BLIND_PUBKEY(), for those retrieving the leaseset:
|
BLIND_PUBKEY(), for those retrieving the leaseset:
|
||||||
alpha = GENERATE_ALPHA(destination, date, secret)
|
alpha = GENERATE_ALPHA(destination, date, secret)
|
||||||
Take the destination's signing public key A
|
Take the destination's signing public key A
|
||||||
blinded public key = A' = BLIND_PUBKEY(A, alpha) = A + DERIVE_PUBLIC(alpha)
|
blinded public key = A' = BLIND_PUBKEY(A, alpha) = A + DERIVE_PUBLIC(alpha)
|
||||||
|
|
||||||
Both methods of calculating A' yield the same result, as required.
|
Both methods of calculating A' yield the same result, as required.
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
Issues
|
Issues
|
||||||
@@ -854,12 +854,12 @@ Sign/Verify Calculations
|
|||||||
|
|
||||||
{% highlight lang='text' %}
|
{% highlight lang='text' %}
|
||||||
Signing:
|
Signing:
|
||||||
T = 80 random bytes
|
T = 80 random bytes
|
||||||
r = H*(T || a || message)
|
r = H*(T || a || message)
|
||||||
(rest is the same as in Ed25519)
|
(rest is the same as in Ed25519)
|
||||||
|
|
||||||
Verification:
|
Verification:
|
||||||
Same as for Ed25519
|
Same as for Ed25519
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user