[Mnet-devel] using MixMinion for anonymity

Zooko zooko at zooko.com
Wed Jul 14 14:29:06 BST 2004


> Does MixMinion do more than just email?

Yes.  I worked with Nick Mathewson on simplifying the MixMinion API so 
that it would be more convenient for other Python code to use it as a 
transport layer.

Just to show you what I'm talking about, I'll attach the last version 
that I sent to Nick, but be aware that the API that Nick eventually 
decides to support will be rather different from this one.  Also I'll 
Cc: him.

Nick: please see this thread: [1] for context.

Regards,

Zooko

[1] 
http://lists.mnetproject.org/pipermail/mnet-devel/2004-July/003429.html
-------------- next part --------------
>From zooko at zooko.com Fri May 28 16:02:53 2004
Mime-Version: 1.0 (Apple Message framework v613)
Bcc: Zooko <zooko at zooko.com>
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed
Message-Id: <00EF82BB-B0E2-11D8-B2AB-000A95E2A184 at zooko.com>
Content-Transfer-Encoding: 7bit
From: Zooko <zooko at zooko.com>
Subject: latest minion-API.py
Date: Fri, 28 May 2004 16:02:53 -0400
To: nickm at alum.mit.edu


# The Simple API
# I don't think that this should be the only Minion API, just that it 
should be one of them.
# Alternatively, the methods could have enough default-value parameters 
that the same set of
# methods could serve as both the simple and complex APIs.
     def sendForwardMessage(self, address, message):
         pass
     def sendReplyMessage(self, surbList, message):
         pass
     def generateSURB(self):
         pass

# The Low-Level API

# parameter name:	type:
# ---------------	----
# address		instance of Address
# message	anything which responds to "str()"
# surb		instances of Surb
# packetbody	instances of PacketBody
# directory	instances of Directory
# pathspec	sequences of instances of PathSpecItem
# packet		instances of Packet
# packets		sequences of instances of Packet
class MinionThingie:
     def __init__(self):
         pass

     def encodeForwardMessage(self, address, message):
         """
         Return a list of packet bodies.
         """
         pass

     def encodeReplyMessage(self, surb, message):
         """
         Return a list of packet bodies.
         """
         pass

     def buildForwardPacket(self, packetbody, directory, pathspec):
         """
         Generates the packet header and encrypts the packet, returning 
a packet.
         """
         pass

     def buildReplyPacket(self, packetbody, directory, pathspec, surb):
         """
         Generates the packet header and encrypts the packet, returning 
a packet.
         """
         pass

     def sendPackets(self, packets, callback=None):
         """
         Send the packets, and if callback is callable, it will be 
invoked once
         for each packet with two arguments: first the packet and second 
a
         boolean indicating whether that packet was successfully sent 
off of the
         local machine or not.
         """
         pass

     def generateSURB(self):
         pass

     def reconstructMessage(self, packets):
         """
         Reconstruct the message from the packets (which must be all 
generated
         from the same message and which must be of sufficient number), 
and
         return the message.
         """
         pass

     # callbacks
     def weReceivedAPacket(self, packet):
         pass



More information about the Mnet-devel mailing list