[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: is tor an email mixmaster?

On Monday 10 November 2008, Erilenz wrote:
> * on the Sun, Nov 09, 2008 at 10:43:29AM -0800, Christopher Davis wrote:
> >> someone has setup an open SMTP relay as hidden service:
> >>   oogjrxidhkttf6vl.onion    port: 587
> >> May be, it works. I did not test it. :-(
> >
> > Unfortunately, this doesn't seem to be running. The idea is
> > interesting, though. It would be prudent to enable spam filtering
> > and/or hashcash for a service like this, of course.
> Yeah. I've heared that relay mentioned several times before, but I've
> never been able to connect to it. I can connect to other hidden services
> fine. You're the first other person I've come across that has either
> confirmed it working or not working.

There's no hidden service directory available any more for this service.

Long time ago I wrote a small tool to check for hidden services. It consists 
of a shell script an a C program. Compile the program and then run the shell 
script with the .onion-URL as a parameter.

Find the souces below.




if [ -z "$1" ] ; then
   echo "usage: $0 <hidden_service_hostname>"
   exit 1

HPID=`echo "$1" | cut -d . -f 1`

rm "$HPID" >/dev/null 2>&1
wget -q "$TDIR/tor/rendezvous/$HPID"

if [ ! -f "$HPID" ] ; then
   echo "could download \"$HPID\" from directory \"$TDIR\""
   exit 1

./getdesc < "$HPID"



#include <stdio.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <time.h>
#include <string.h>

#define FRAME_SIZE 2048

int main(int argc, char *argv[])
   char buf[FRAME_SIZE];
   char timestr[32];
   char *ptr = buf;
   int len, intro, i;
   time_t ts;
   struct tm *tm;

   read(0, buf, FRAME_SIZE);

   len = ntohs(*((uint16_t*) ptr));
   ptr += len + 2;
   ts = ntohl(*((uint32_t*) ptr));
   tm = localtime(&ts);
   strftime(timestr, 32, "%c", tm);
   ptr += 4;
   intro = ntohs(*((uint16_t*) ptr));
   ptr += 2;

   printf("key_len = %d\ntimestamp = \"%s\" (%ld)\nintro_point_cnt = %d\n", 
len, timestr, ts, intro);

   for (i = 0; i < intro; i++)
      printf("intro_point[%d] = \"%s\"\n", i, ptr);
      ptr += strlen(ptr) + 1;

   return 0;


Attachment: signature.asc
Description: This is a digitally signed message part.