[strongSwan-dev] strongswan dependencies

Jan Willem Beusink jan.willem.beusink at ti-wmc.nl
Tue Mar 9 13:44:56 CET 2010


Hi,

Thank you Martin for your swift reply.

Martin Willi wrote:
> Hi,
> 
>> I'm at it I also intend to adapt strongSwan to perform authorization
>> using the PERMIS reasoning engine, using a WebDAV repository for the
>> certificates.
> 
> Interesting.
I agree :) and a lot more work than I bargained for..
> 
>> 1. Using --enable-openssl obsoletes (to my knowledge) gmp, thus I can
>> --disable-gmp without any problems, right?
> 
> Yes, the openssl plugin provides Diffie-Hellman and RSA implementations
> usually offered by gmp, so there is no need for gmp.
> The eap-aka-3gpp2 plugin additionally depends on GMP functions, but I
> assume you won't need it.
you assume correctly

>> 2. strongSwan depends on several kernel crypto modules. some of which
>> are selected by a 2.6 kernel in combination with ipsec (core, des, hmac,
>> md5, sha-1) others are selected by kmod-mac80211 (core, aes, arc4). So
>> these will get installed on my target device. But does strongSwan itself
>> rely on / need these?
> 
> I don't know these OpenWRT specific kernel modules packages in detail,
> but having a look at our kernel module list [1] might be of help. For
> the algorithms, you can limit the selection to what you'll actually use.
> 

not all the options in [1] can be linked 1-on-1. but I've managed to
figure out so far that:

openwrt: Modules -> Network Support -> kmod_ipsec
maps to
   PF_KEY sockets
   Transformation user configuration interface
+kmod_ipsec includes:

  │  - af_key

  │  - xfrm_user

 IP: advanced router
is needed for the next:
 IP: policy routing
	Enables routing based on more then destination only. selects (
CONFIG_IP_MULTIPLE_TABLES )
Which _probably_ maps to:
  openwrt: Network -> IP
	(Routing control utility)

openwrt: Kernel Modules -> Network Support -> kmod_ipsec4/kmod_ipsec6
maps to the following
  IP: AH transformation
  IP: ESP transformation
  IP: IPComp transformation
  IP: IPsec transport mode
  IP: IPsec tunnel mode
  IP: IPsec BEET mode (experimental)
+ipsec4 includes
  │  - ah4

  │  - esp4

  │  - ipcomp

  │  - xfrm4_mode_beet

  │  - xfrm4_mode_transport

  │  - xfrm4_mode_tunnel

  │  - xfrm4_tunnel
+ipsec6 includes
  │  - ah6

  │  - esp6

  │  - ipcomp6

  │  - xfrm6_mode_beet

  │  - xfrm6_mode_transport

  │  - xfrm6_mode_tunnel

  │  - xfrm6_tunnel

IPv6: Multiple Routing Tables
_best guess_ maps to:
  openwrt: Kernel Modules -> Netfilter extentions -> kmod-ip6tables

openwrt: Kernel Modules -> Netfilter extentions -> kmod-ipt-core
maps to:
   Core Netfilter Configuration

openwrt: Kernel Modules -> Netfilter extentions -> kmod-ipt-ipsec
maps to:
   IPsec "policy" match support

>> 3. what about kmod-crypto-authenc? does strongSwan need this?
> 
> Yes, the authenc wrapper is needed.
> 
>> 4. In light of previous questions: there are several configure options
>> disabling 'own' crypto plugin. What is meant by 'own'  and which can I
>> disable if I enable openssl (or gmp for that matter)?
> 
> With "own" we mean that this plugin provides the algorithm in software
> by itself. If you have enabled the openssl wrapper plugin, you can
> disable all of them. OpenSSL provides a superior list of crypto
> algorithms. But keep the random plugin, the openssl plugin does not
> provide a random data source.
> The gmp plugin provides asymmetric algorithms only.

Not sure what you mean by all.
I had to following selected, works like a charm.
--disable-aes
--disable-des
--disable-fips-prf
--disable-gmp
--disable-md5
--disable-sha1
--disable-sha2

But if I understand you correctly I can also disable these?
--disable-hmac
--disable-x509
--disable-xcbc

And just to be sure, can I disable the following and leave the decoding
to openssl?
--disable-pem
--disable-pgp
--disable-pkcs1
--disable-pubkey

>> 5. "ipsec is a wrapper script for controlling starter, whack and stroke"
>> So if I wish to use the charon daemon, what is the preferred starting
>> method? the up-down scripts?
> 
> Depends on what your platform offers. The charon daemon does not have
> any forking/background functionality, so you'll need a daemon startup
> helper, such as start-stop-daemon. PID file is created
> under /var/run/charon.pid.
> 
> 
> If you abandon the ipsec.conf based configuration in conjunction with
> starter, keep in mind that you'll need another configuration interface.
> We have started the UCI plugin a while ago, but it does not offer all
> the options you might need. I think it does not even compile against a
> current libuci, but it is a good starting point to build a OpenWRT
> specific backend.

I assume that by starter you mean 'ipsec start', I'm confused as to
which option(s) would disable starter. Please enlighten me.

> Regards
> Martin
>  [1]http://wiki.strongswan.org/projects/strongswan/wiki/KernelModules


kind regards,

Jan Willem Beusink





More information about the Dev mailing list