<?xml version="1.0" encoding="utf-8" ?>
<Mixes count="1">
<!-- <Mixes> contains an ordered list of the Mixes of the cascade -->
<!-- count gives the number of <Mix> elements -->
<Mix id="..."> <!-- describes a single Mix -->
<MixProtocolVersion>0.3</MixProtocolVersion>
<RSAKeyValue> <!-- The public encryption key used by that Mix -->
<Modulus></Modulus>
<Exponent></Exponent>
</RSAKeyValue>
<Nonce>...</Nonce> <!-- A nonce used to detect reply attacks -->
<Signature>...</Signature> <!-- digital signature of the <Mix>-element -->
<KeepAlive>
<!-- Gives information about the "Keep-Alive"-protocol
between Mixes -->
<SendInterval>
<!-- minimum packet send interval (in seconds)
from Mix n to Mix n-1 -->
...
</SendInterval>
<ReceiveInterval>
<!-- minimum packet receive interval (in seconds)
from Mix n-1 to Mix n -->
...
</ReceiveInterval>
</KeepAlive>
</Mix>
</Mixes>
<?xml version="1.0" encoding="utf-8" ?>
<EncryptedKey>
<EncryptionMethod Algorithm="RSA" />
<CipherData>
<CipherValue>...</CipherValue>
</CipherData>
<Nonce>...</Nonce>
<KeepAlive>
<!-- Gives information about the "Keep-Alive"-protocol
between Mixes -->
<SendInterval>
<!-- minimum packet send interval (in seconds)
from Mix n-1 to Mix n -->
...
</SendInterval>
<ReceiveInterval>
<!-- minimum packet receive interval (in seconds)
from Mix n to Mix n-1 -->
...
</ReceiveInterval>
</KeepAlive>
<Signature>...</Signature>
</EncryptedKey>
<?xml version="1.0" ?>
<MixCascade id="...">
<Name>...</Name>
<Network>
<ListenerInterfaces>
<ListenerInterface>
<Type>RAW/TCP</Type>
<Port>..</Port>
<Host>..</Host>
<IP>..</IP>
</ListenerInterface>
</ListenerInterfaces>
</Network>
<Mixes count="..">
<Mix id=".." />
<!--- all the Information about the FirstMix -->
<Mix id="." />
<!-- only the id's of all other mixes of the cascade -->
</Mixes>
<LastUpdate>..</LastUpdate>
<Payment required="true|false">
<!--Gives payment related information to the JAP
if required=="true" payment is required
if required=="false" no paymetn is required
-->
</Payment>
<Signature>..</Signature>
</MixCascade>
<?xml version="1.0" encoding="utf-8" ?>
<MixCascadeStatus id=".."
currentRisk=".."
mixedPackets=".."
nrOfActiveUsers=".."
trafficSituation=".."
LastUpdate="..">
<Signature>..</Signature>
</MixCascadeStatus>
<?xml version="1.0" encoding="utf-8" ?>
<Mix id="...">
<Name>..</Name>
<Location>
...
</Location>
<Proxies> <!-- Only for the Last Mix -->
<Proxy>
<VisibleAddresses> <!-- Describes the visible addresses from the 'outside world' -->
<VisibleAddress>
<Host> <!-- Host or IP -->
</Host>
</VisibleAddress>
</VisibleAddresses>
</Proxy>
</Proxies>
<Operator>
<Organisation>..</Organisation>
<URL>..</URL>
</Operator>
<Software>
<Version>..</Version>
</Software>
<LastUpdate>..</LastUpdate>
<Signature>..</Signature>
</Mix>
<?xml version="1.0" ?>
<MixCascade version="0.2">
<MixProtocolVersion>
<!-- "0.4" ==> "normal" mix proctocol
"0.8" ==> with timestamp/replay detection
"0.9" ==> with new payment protocol
-->
...
</MixProtocolVersion>
<Mixes count="..">
<Mix id="..">
<MixProtocolVersion>...</MixProtocolVersion>
<RSAKeyValue>
<!--- PubKey of FirstMix -->
...
</RSAKeyValue>
<Replay>
<!-- information for replay detection mechanisms
if supported by protocol -->
<ReplayTimestamp interval=".." offset="..">
<!-- replay timestamp on the mix -->
<!-- interval give the number of the current
interval on the mix; offset gives the
seconds since start of this interval -->
</ReplayTimestamp>
</Replay>
</Mix>
<Mix id=".">
<RSAKeyValue>
<!--- PubKey of FirstMix -->
...
</RSAKeyValue>
<Signature>
<!--- from the Mix -->
...
</Signature>
</Mix>
</Mixes>
<Payment required="true|false">
<!-- Since Version 0.2 -->
<!-- Gives payment related information to the JAP
if required=="true" payment is required
if required=="false" no payment is required
-->
</Payment>
<Signature>
<!--- from FirstMix -->
...
</Signature>
</MixCascade>
<Signature>
<SignedInfo>
<Reference URI=""> <!--what is signed ?-->
<DigestValue>.....</DigestValue> <!--base64 SHA1 digest -->
</Reference>
</SignedInfo>
<SignatureValue>
<!--base64 of r,s of DSA signature -->
</SignatureValue>
<KeyInfo>
<!-- info abnout the key used -->
<X509Data>
<X509Certificate>
<!-- base64 cert of the public test key for the signature -->
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
1.5.1