XML structs

This is the index of all XML structs used in the project.

1. XML Message send from LastMix to Mix n-1 during cascade init
<?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>
2. Answer send from Mix n-1 to Mix n during cascade init
<?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>
3. Mix-Cascade info (and info about the FirstMix) send from the FirstMix to the InfoService.
<?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>
4. Mix-Cascade status send from the FirstMix to the InfoService.
<?xml version="1.0" encoding="utf-8" ?> 
<MixCascadeStatus id=".." 
                  currentRisk=".."
                  mixedPackets=".."
                  nrOfActiveUsers=".."
                  trafficSituation=".."
                  LastUpdate="..">
  <Signature>..</Signature>                  
</MixCascadeStatus>
5. Mix-HELO send from the Middle- or LastMix to the InfoService to announce itself.
<?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>
6. Mix-KeyInfo send from the FirstMix to the JAP.
<?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>
7. Signature Element
<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>

Generated on Wed Dec 3 23:31:55 2008 for Mixes for Privacy and Anonymity in the Internet by  doxygen 1.5.1