# Installing the TAHI IPv6 Conformance Test Suite



## Bradley (Dec 21, 2021)

I am not very familiar with FreeBSD, please forgive me my lack of knowledge.

For the purpose of testing our own implementation of IPv6 I am trying to get the TAHI suite up and running.
Most online guides are unfortunately from 2009 or 2012 and do not help much any more.
After close to a week of trial and error I am close to giving up.
It just refuses to compile. I have tried multiple FreeBSD versions, starting with the newest (13, 14) and even with the old unsupported versions (7.2, 8, 9).
I even tried patching the TAHI source.

I am trying to install the currently latest TAHI version "v6eval-3.3.5".
As per the installation guide I have installed the required port packages but I can not get past a problem with openSSL:

```
c++  -O2 -pipe -I../Cm -I. -g -DYYDEBUG -Wall -Woverloaded-virtual -MD -MF.depend.McIKE.o -MTMcIKE.o -Wno-format-zero-length -nobuiltininc -idirafter /usr/lib/clang/13.0.0/include -fstack-protector-strong -Qunused-arguments -O0 -I../Cm -I.  -I/usr/local/include    -Wno-c++11-extensions   -c McIKE.cc -o McIKE.o
In file included from McIKE.cc:61:
./MfAlgorithm.h:237:35: error: unknown type name 'des_key_schedule'; did you mean 'DES_key_schedule'?
        void scheduleKeys(const PObject*,des_key_schedule&) const;
                                         ^~~~~~~~~~~~~~~~
                                         DES_key_schedule
/usr/local/include/openssl/des.h:43:3: note: 'DES_key_schedule' declared here
} DES_key_schedule;
  ^
In file included from McIKE.cc:61:
./MfAlgorithm.h:280:3: error: unknown type name 'des_key_schedule'; did you mean 'DES_key_schedule'?
                des_key_schedule&,des_key_schedule&,des_key_schedule&) const;
                ^~~~~~~~~~~~~~~~
                DES_key_schedule
/usr/local/include/openssl/des.h:43:3: note: 'DES_key_schedule' declared here
} DES_key_schedule;
  ^
In file included from McIKE.cc:61:
./MfAlgorithm.h:280:21: error: unknown type name 'des_key_schedule'; did you mean 'DES_key_schedule'?
                des_key_schedule&,des_key_schedule&,des_key_schedule&) const;
                                  ^~~~~~~~~~~~~~~~
                                  DES_key_schedule
/usr/local/include/openssl/des.h:43:3: note: 'DES_key_schedule' declared here
} DES_key_schedule;
  ^
In file included from McIKE.cc:61:
./MfAlgorithm.h:280:39: error: unknown type name 'des_key_schedule'; did you mean 'DES_key_schedule'?
                des_key_schedule&,des_key_schedule&,des_key_schedule&) const;
                                                    ^~~~~~~~~~~~~~~~
                                                    DES_key_schedule
```
Correcting these errors by hand leads to a bunch of other errors down the line.
If my understanding is correct it would seem that the TAHI suite is supposed to be build against openssl-1.0.xxx whereas the package installed via "pkg install openssl" is openssl-1.1.1.
If that is correct, how could I build the TAHI suite against the old openssl version?

Does anyone else have any experience with installing this tool?


----------



## drhowarddrfine (Dec 21, 2021)

This used to be a port but was deprecated: https://www.freshports.org/net/v6eval

I also found this: https://people.freebsd.org/~qingli/ct-freebsd-9/ so you might see if you can contact qingli


----------



## Bradley (Dec 21, 2021)

drhowarddrfine said:


> This used to be a port but was deprecated: https://www.freshports.org/net/v6eval
> 
> I also found this: https://people.freebsd.org/~qingli/ct-freebsd-9/ so you might see if you can contact qingli


It would seem that the deprecated port was for version 3.3.2 of TAHI, which is already old. Since the newest version (3.3.5) is only available as a source tar I suppose they did not bother maintaining the port at some point and you are meant to compile it from source.

Thank you for the second link, but I am not sure how that could help or how to even contact someone with a FreeBSD "people" page. 
His latest additions seem to be from 2013


----------



## drhowarddrfine (Dec 21, 2021)

My thought was that you could grab the old port and look at the makefile and any other associated files to see what he did to make the old port work. If you're lucky, it could be something obvious and simple that will make the new version work. The original maintainer may have died for all we know.


----------



## Bradley (Dec 23, 2021)

drhowarddrfine said:


> My thought was that you could grab the old port and look at the makefile and any other associated files to see what he did to make the old port work. If you're lucky, it could be something obvious and simple that will make the new version work. The original maintainer may have died for all we know.


I took a look at the old makefile, it unfortunately is completely different to the new makefiles. It has a funny switch though "USE_OPENSSL", when set to "no" it will still try to compile openssl :/

It is a bit sad, the result logs of the TAHI suite looked quite promising, but it looks like there is no way to make this run without special knowledge and even if, who knows what other problems I would run into.


----------

