9 years agoandroid: Request and install an IPv6 DNS server
Tobias Brunner [Thu, 7 Mar 2013 17:20:10 +0000 (18:20 +0100)]
android: Request and install an IPv6 DNS server

9 years agoandroid: Also request a virtual IPv6 address and propose IPv6 TS
Tobias Brunner [Thu, 7 Mar 2013 17:16:56 +0000 (18:16 +0100)]
android: Also request a virtual IPv6 address and propose IPv6 TS

This allows IPv6 over IPv4 but falls back nicely if we don't get a
virtual IPv6 (or IPv4) address.

9 years agoipsec: Increased log level for message in case no outbound policy is found
Tobias Brunner [Thu, 7 Mar 2013 15:21:11 +0000 (16:21 +0100)]
ipsec: Increased log level for message in case no outbound policy is found

This might happen on Android if sockets are bound to the physical IP
address but packets are still routed via TUN device.  Since it seems to
happen quite often (or for stuff that requires regular traffic) this
hides these messages from the default log.

9 years agoAdd an option to autobalance a HA cluster automatically
Martin Willi [Tue, 19 Mar 2013 15:49:07 +0000 (16:49 +0100)]
Add an option to autobalance a HA cluster automatically

9 years agoCheck if for some reason we handle a HA segment on both nodes
Martin Willi [Tue, 19 Mar 2013 15:48:53 +0000 (16:48 +0100)]
Check if for some reason we handle a HA segment on both nodes

9 years agoAcquire HA segment lock while sending heartbeat
Martin Willi [Tue, 19 Mar 2013 15:46:43 +0000 (16:46 +0100)]
Acquire HA segment lock while sending heartbeat

9 years agoRemoved unused variable 'id'
Tobias Brunner [Tue, 19 Mar 2013 15:37:40 +0000 (16:37 +0100)]
Removed unused variable 'id'

9 years agoProperly cleanup libmysql
Tobias Brunner [Mon, 18 Mar 2013 18:17:19 +0000 (19:17 +0100)]
Properly cleanup libmysql

Seems to work correctly with recent MySQL versions.

9 years agoUse proper address family when adding multiple addresses to SQL pool
Tobias Brunner [Mon, 18 Mar 2013 18:11:10 +0000 (19:11 +0100)]
Use proper address family when adding multiple addresses to SQL pool

9 years agoIgnore SQL-based IP address pools if their address family does not match
Tobias Brunner [Mon, 18 Mar 2013 17:45:29 +0000 (18:45 +0100)]
Ignore SQL-based IP address pools if their address family does not match

9 years agocharon-nm: Add dependencies to CERT_DECODE and PRIVKEY plugin features
Tobias Brunner [Tue, 26 Feb 2013 14:43:30 +0000 (15:43 +0100)]
charon-nm: Add dependencies to CERT_DECODE and PRIVKEY plugin features

This ensures the NM-specific credential set is unloaded before any
implementation of certificate/key objects, which causes a segmentation
fault during shutdown.

9 years agocharon-nm: Prevent NM from changing the default route
Tobias Brunner [Fri, 22 Feb 2013 17:52:17 +0000 (18:52 +0100)]
charon-nm: Prevent NM from changing the default route

This is not required as we install our own (narrow) route(s) in our own
routing table. This should allow split tunneling if configured on the

9 years agocharon-nm: Use VIP (if any) as local address
Tobias Brunner [Fri, 22 Feb 2013 17:49:55 +0000 (18:49 +0100)]
charon-nm: Use VIP (if any) as local address

NM will install this address on the provided device.

9 years agocharon-nm: Pass a dummy TUN device to NetworkManager
Tobias Brunner [Fri, 22 Feb 2013 15:51:52 +0000 (16:51 +0100)]
charon-nm: Pass a dummy TUN device to NetworkManager

NetworkManager modifies the addresses etc. on this interface so using
"lo" is not optimal. With the dummy interface NM is free to do its

9 years agocharon-nm: Fix NM plugin utility macros
Tobias Brunner [Mon, 25 Feb 2013 17:46:15 +0000 (18:46 +0100)]
charon-nm: Fix NM plugin utility macros

9 years agoIgnore 'compile' script which is generated by AM_PROG_CC_C_O
Tobias Brunner [Tue, 19 Mar 2013 15:18:35 +0000 (16:18 +0100)]
Ignore 'compile' script which is generated by AM_PROG_CC_C_O

9 years agoAvoid returning COOKIEs right after system boot
Tobias Brunner [Thu, 31 Jan 2013 17:42:26 +0000 (18:42 +0100)]
Avoid returning COOKIEs right after system boot

When the monotonic timer is initialized to 0 right after the system is
booted the daemon responded with COOKIES for COOKIE_CALMDOWN_DELAY (10s).

Since the COOKIE verification code actually produces an overflow for
COOKIE_LIFETIME (10s) it wouldn't even accept properly returned COOKIEs.

Checking for last_cookie makes sense anyway as that condition must only
apply if we actually sent a COOKIE before.

9 years agoFix scheduling of heartbeat sending in HA plugin
Martin Willi [Tue, 19 Mar 2013 14:17:41 +0000 (15:17 +0100)]
Fix scheduling of heartbeat sending in HA plugin

e0efd7c1 switches to automated job rescheduling for HA heartbeat. However,
send_status() is initially called directly, which will not reschedule the job
as required.

9 years agoFix compiler warning in HA plugin
Martin Willi [Tue, 19 Mar 2013 14:16:06 +0000 (15:16 +0100)]
Fix compiler warning in HA plugin

9 years agoMerge branch 'tkm'
Tobias Brunner [Tue, 19 Mar 2013 14:25:38 +0000 (15:25 +0100)]
Merge branch 'tkm'

This adds charon-tkm a special build of the charon IKEv2 daemon that delegates
security critical operations to a separate process (TKM = Trusted Key Manager).

9 years agoVarious stylistic fixes
Adrian-Ken Rueegsegger [Mon, 18 Mar 2013 17:47:16 +0000 (18:47 +0100)]
Various stylistic fixes

9 years ago Add NEWS about TKM separation
Reto Buerki [Mon, 18 Mar 2013 15:13:55 +0000 (16:13 +0100)]
 Add NEWS about TKM separation

9 years agoUse network byte order for ESA SPIs
Adrian-Ken Rueegsegger [Mon, 4 Mar 2013 10:23:22 +0000 (11:23 +0100)]
Use network byte order for ESA SPIs

9 years agoProvide MODP-2048 through TKM DH plugin
Adrian-Ken Rueegsegger [Mon, 11 Feb 2013 14:21:49 +0000 (15:21 +0100)]
Provide MODP-2048 through TKM DH plugin

9 years agoAdd charon-tkm API documentation
Adrian-Ken Rueegsegger [Wed, 30 Jan 2013 10:16:16 +0000 (11:16 +0100)]
Add charon-tkm API documentation

9 years agoDo not hardwire keys to KEY_RSA
Reto Buerki [Wed, 30 Jan 2013 14:36:03 +0000 (15:36 +0100)]
Do not hardwire keys to KEY_RSA

Make the TKM private and public keys more easily extendable by
determining the associated key type dynamically.

9 years agoProvide TKM credential encoder
Reto Buerki [Fri, 18 Jan 2013 13:40:02 +0000 (14:40 +0100)]
Provide TKM credential encoder

The TKM credential encoder creates fingerprints of type

This makes the pkcs1 plugin unnecessary.

9 years agoSwitch to openssl plugin
Reto Buerki [Tue, 29 Jan 2013 09:28:38 +0000 (10:28 +0100)]
Switch to openssl plugin

9 years agoImplement multiple-clients integration test
Reto Buerki [Mon, 28 Jan 2013 10:58:03 +0000 (11:58 +0100)]
Implement multiple-clients integration test

Two transport connections to gateway sun are set up, one from client
carol and the other from client dave. The gateway sun uses the Trusted
Key Manager (TKM) and is the responder for both connections. The
authentication is based on X.509 certificates. In order to test the
connections, both carol and dave ping gateway sun.

9 years agoImplement net2net-xfrmproxy integration test
Reto Buerki [Mon, 28 Jan 2013 09:44:19 +0000 (10:44 +0100)]
Implement net2net-xfrmproxy integration test

9 years agoImplement net2net-initiator integration test
Reto Buerki [Mon, 28 Jan 2013 09:40:36 +0000 (10:40 +0100)]
Implement net2net-initiator integration test

9 years agoAdd xfrm_proxy integration test
Reto Buerki [Fri, 25 Jan 2013 09:40:29 +0000 (10:40 +0100)]
Add xfrm_proxy integration test

9 years agoProvide script to build Ada XFRM proxy
Reto Buerki [Fri, 25 Jan 2013 09:33:46 +0000 (10:33 +0100)]
Provide script to build Ada XFRM proxy

9 years agoAdd TKM responder integration test
Reto Buerki [Thu, 24 Jan 2013 16:05:17 +0000 (17:05 +0100)]
Add TKM responder integration test

9 years agoAdd initial TKM integration test
Reto Buerki [Tue, 22 Jan 2013 19:52:55 +0000 (20:52 +0100)]
Add initial TKM integration test

A connection between the hosts moon and sun is set up. The host moon
uses the Trusted Key Manager (TKM) and is the initiator of the transport
connection. The authentication is based on X.509 certificates.

9 years agoAdd expect-file guest image script
Reto Buerki [Thu, 24 Jan 2013 17:26:34 +0000 (18:26 +0100)]
Add expect-file guest image script

This script can be used in pretest.dat files to wait until a given file

9 years agoAdd /usr/local/lib/ipsec to linker cache
Reto Buerki [Tue, 22 Jan 2013 19:52:15 +0000 (20:52 +0100)]
Add /usr/local/lib/ipsec to linker cache

9 years agoProvide recipes to build tkm and required libraries
Reto Buerki [Tue, 22 Jan 2013 15:07:25 +0000 (16:07 +0100)]
Provide recipes to build tkm and required libraries

9 years agoAdd GNAT compiler and Ada libs to base image
Reto Buerki [Tue, 22 Jan 2013 15:04:34 +0000 (16:04 +0100)]
Add GNAT compiler and Ada libs to base image

9 years agoDon't manually register kernel_netlink_net
Reto Buerki [Wed, 23 Jan 2013 12:51:12 +0000 (13:51 +0100)]
Don't manually register kernel_netlink_net

Load complete kernel_netlink plugin instead. Registering the TKM
specific plugins first still ensures that the correct ipsec plugin
is used.

Lazy initialize the RNG_WEAK plugin to avoid the unsatisfiable
soft dependency on startup.

9 years agoMove stroke plugin to the end of PLUGINS list
Reto Buerki [Wed, 23 Jan 2013 12:43:07 +0000 (13:43 +0100)]
Move stroke plugin to the end of PLUGINS list

This fixes the problem of stroke being unable to load the ca
certificates on startup.

9 years agoMake sure IP_XFRM_POLICY is defined
Reto Buerki [Thu, 17 Jan 2013 09:01:31 +0000 (10:01 +0100)]
Make sure IP_XFRM_POLICY is defined

9 years agoCall isa_skip_create_first when keeping IKE SA
Adrian-Ken Rueegsegger [Wed, 19 Dec 2012 14:58:17 +0000 (15:58 +0100)]
Call isa_skip_create_first when keeping IKE SA

An ALERT_KEEP_ON_CHILD_SA_FAILURE alert is issued when child SA establishment
fails but the corresponding IKE SA is not destroyed. To allow later creation
of child SAs the ISA context must be signaled that the implicity first child SA
creation was skipped.

9 years agoMake IKE and EES sockets configurable
Adrian-Ken Rueegsegger [Tue, 18 Dec 2012 16:15:58 +0000 (17:15 +0100)]
Make IKE and EES sockets configurable

The IKE and EES sockets are now read from strongswan.conf. They can be
specified like this:

charon-tkm {
ike_socket = /tmp/tkm.rpc.ike
ees_socket = /tmp/tkm.rpc.ees

The socket names given above are used by default if none are configured.

9 years agoImplement TKM-specific credential set
Reto Buerki [Tue, 18 Dec 2012 14:35:40 +0000 (15:35 +0100)]
Implement TKM-specific credential set

The TKM credential set extends the in-memory credential set. It
provides a private key enumerator which is used to instantiate private
key proxy objects on-demand. This allows the usage of private keys with
arbitrary identifiers.

9 years agoInitialize libstrongswan in test_runner main()
Reto Buerki [Tue, 18 Dec 2012 14:06:07 +0000 (15:06 +0100)]
Initialize libstrongswan in test_runner main()

9 years agoSet ri_id to reqid when setting user certificate
Adrian-Ken Rueegsegger [Mon, 17 Dec 2012 17:27:03 +0000 (18:27 +0100)]
Set ri_id to reqid when setting user certificate

Pass the reqid (of the first child config of an IKE SA) as remote identity id
when calling cc_set_user_certificate. May lead to the usage of the wrong id in
case an IKE SA has multiple child configurations/reqids.

This must be replaced with a proper lookup once the configuration backend is
implemented and provides remote identity ids to charon-tkm.

9 years agoSet sp_id to reqid when creating ESA
Adrian-Ken Rueegsegger [Mon, 17 Dec 2012 16:21:47 +0000 (17:21 +0100)]
Set sp_id to reqid when creating ESA

The reqid corresponds to the sp_id (security policy id) on the TKM side.

9 years agoCall Esa_Select after creation of child SA
Adrian-Ken Rueegsegger [Mon, 12 Nov 2012 18:05:28 +0000 (19:05 +0100)]
Call Esa_Select after creation of child SA

This tells the TKM which child SA is the currently active SA.

9 years agoCheck that chunk fits into sequence when converting
Adrian-Ken Rueegsegger [Mon, 12 Nov 2012 11:08:32 +0000 (12:08 +0100)]
Check that chunk fits into sequence when converting

9 years agoRemove result out parameter from EES Init
Reto Buerki [Thu, 8 Nov 2012 14:32:54 +0000 (15:32 +0100)]
Remove result out parameter from EES Init

Error processing is done by the registered exception handler.

9 years agoDrop support for pre-shared key authentication
Adrian-Ken Rueegsegger [Thu, 8 Nov 2012 11:22:10 +0000 (12:22 +0100)]
Drop support for pre-shared key authentication

9 years agocharon-tkm: Register TKM private key on startup
Reto Buerki [Tue, 16 Oct 2012 15:12:51 +0000 (17:12 +0200)]
charon-tkm: Register TKM private key on startup

9 years agoAdd TKM private key implementation
Reto Buerki [Tue, 16 Oct 2012 14:27:46 +0000 (16:27 +0200)]
Add TKM private key implementation

The key currently imitates the private key of by
returning it's fingerprint in the get_fingerprint function.

This associates the private key with alice's X.509 cert and charon will
use it to create a signature over the local AUTH octets of the test

The private key serves as a proxy to the TKM ike_isa_sign operation and
extracts the required information from the auth octets chunk passed on
by the keymat.

9 years agokeymat: Store signature info in auth octets
Reto Buerki [Tue, 16 Oct 2012 14:42:23 +0000 (16:42 +0200)]
keymat: Store signature info in auth octets

Store the ISA context id and the initial message in the auth octets
chunk using the sign_info_t struct. Charon will pass on this information
to the TKM private key sign operation where it is extracted.

9 years agoAdd AUTH signature info data structure
Reto Buerki [Tue, 16 Oct 2012 14:39:54 +0000 (16:39 +0200)]
Add AUTH signature info data structure

The sign_info_t type is used to transfer an ISA context id and the
initial message from the keymat to the TKM private key sign operation.

9 years agocharon-tkm: Register TKM public key on startup
Adrian-Ken Rueegsegger [Thu, 8 Nov 2012 10:04:48 +0000 (11:04 +0100)]
charon-tkm: Register TKM public key on startup

9 years agoAdd TKM public key implementation
Adrian-Ken Rueegsegger [Thu, 8 Nov 2012 10:00:21 +0000 (11:00 +0100)]
Add TKM public key implementation

The key unconditionally returns TRUE for the verify operation if it is called
with a supported signature algorithm. All such verification operations are
performed by the TKM (e.g. trustchain or auth octets verification) anyway, so
this is safe.

9 years agoAuthenticate ISA using certificates
Adrian-Ken Rueegsegger [Wed, 7 Nov 2012 16:55:47 +0000 (17:55 +0100)]
Authenticate ISA using certificates

The authentication of the ISA is now done using the certificate provided
by the peer.

9 years agoStore peer IKE init message
Adrian-Ken Rueegsegger [Wed, 7 Nov 2012 16:54:24 +0000 (17:54 +0100)]
Store peer IKE init message

The IKE init message sent to us by the peer is needed for authentication
in the authorization hook. Store the message as chunk in the keymat and
provide a getter to make it available.

9 years agoBuild cc context in tkm listener authorize hook
Adrian-Ken Rueegsegger [Tue, 25 Sep 2012 13:21:11 +0000 (15:21 +0200)]
Build cc context in tkm listener authorize hook

Extract peer certificate information and build a TKM certificate chain
context in the authorize hook of the tkm_listener_t. The cc context will
be used for ISA authentication using certificates.

9 years agoAdd TKM_CTX_CC (Certificate chain context id)
Adrian-Ken Rueegsegger [Tue, 25 Sep 2012 15:13:19 +0000 (17:13 +0200)]
Add TKM_CTX_CC (Certificate chain context id)

9 years agoAdd typelen parameter to chunk_to_sequence function
Adrian-Ken Rueegsegger [Thu, 4 Oct 2012 09:17:33 +0000 (11:17 +0200)]
Add typelen parameter to chunk_to_sequence function

The parameter is used to initialize the given sequence to zero.

9 years agoImplement Ada exception processing
Reto Buerki [Tue, 2 Oct 2012 15:03:39 +0000 (17:03 +0200)]
Implement Ada exception processing

Register a global exception action with the Ada runtime to log uncaught
exceptions to the daemon log and terminate.

9 years agoImplement Esa Event Service (EES)
Reto Buerki [Wed, 26 Sep 2012 13:40:27 +0000 (15:40 +0200)]
Implement Esa Event Service (EES)

The Esa Event Service can be used to trigger ESP SA (ESA) events such as
acquire or expire. The incoming events are forwarded to the hydra kernel
interface for processing.

9 years agoConditionally reset AE context in keymat destroy
Adrian-Ken Rueegsegger [Wed, 19 Sep 2012 15:55:28 +0000 (17:55 +0200)]
Conditionally reset AE context in keymat destroy

The responsibility to reset an authenticated endpoint context is passed
from a parent IKE SA keymat to the new keymat by including it in the ISA
info data contained in the skd chunk. The last IKE SA to be destroyed
will also reset the associated AE context.

9 years agoLet tkm_keymat_t extend keymat_v2_t
Adrian-Ken Rueegsegger [Tue, 18 Sep 2012 17:01:38 +0000 (19:01 +0200)]
Let tkm_keymat_t extend keymat_v2_t

9 years agoImplement IKE SA rekeying
Adrian-Ken Rueegsegger [Tue, 18 Sep 2012 13:21:08 +0000 (15:21 +0200)]
Implement IKE SA rekeying

Use the TKM ike_isa_create_child exchange to rekey an IKE SA. The isa context id
is passed on (ab)using the rekey_skd chunk.

9 years agoAdd test for keymat derive_child_keys operation
Adrian-Ken Rueegsegger [Tue, 18 Sep 2012 09:15:16 +0000 (11:15 +0200)]
Add test for keymat derive_child_keys operation

9 years agoImplement ESA rekeying with and without PFS
Adrian-Ken Rueegsegger [Mon, 17 Sep 2012 15:19:58 +0000 (17:19 +0200)]
Implement ESA rekeying with and without PFS

A child SA is being rekeyed if the esa information passed to the add_sa
function contains nonces. If it also contains a valid Diffie-Hellman
context id PFS is used.

The fact that the encr_r encryption key is passed to add_sa in the
inbound case can be used to determine if we are initiator or not by
inspecting the is_encr_r flag of the esa information struct.

9 years agoExtend esa_info_t struct
Adrian-Ken Rueegsegger [Fri, 14 Sep 2012 15:29:21 +0000 (17:29 +0200)]
Extend esa_info_t struct

Add additional fields to the esa_info_t struct so the necessary data can
be passed from the keymat to the kernel ipsec interface, where ESA
creation and key generation using the TKM takes place.

The information is used during the inbound add_sa call to create an ESP
SA. This makes the hack of storing the local SPI in a kernel interface
variable between subsequent add_sa calls unnecessary.

9 years agoUse SAD to manage TKM ESA context information
Adrian-Ken Rueegsegger [Fri, 14 Sep 2012 13:42:17 +0000 (15:42 +0200)]
Use SAD to manage TKM ESA context information

An SAD entry is added after successfull creation of a TKM ESA context
in the add_sa() function. The corresponding entry is removed in
del_sa() using the SAD, src, dst, spi and protocol parameters.

9 years agoImplement TKM kernel SA database (SAD)
Adrian-Ken Rueegsegger [Fri, 14 Sep 2012 12:59:04 +0000 (14:59 +0200)]
Implement TKM kernel SA database (SAD)

The TKM kernel SAD (security association database) stores information
about CHILD SAs.

9 years agoAdd TKM_CTX_ESA (ESP SA context id)
Adrian-Ken Rueegsegger [Fri, 14 Sep 2012 08:29:38 +0000 (10:29 +0200)]
Add TKM_CTX_ESA (ESP SA context id)

9 years agoUse rng to generate local ESP SPIs
Adrian-Ken Rueegsegger [Wed, 12 Sep 2012 09:52:08 +0000 (11:52 +0200)]
Use rng to generate local ESP SPIs

9 years agocharon-tkm: Register kernel_netlink_net
Adrian-Ken Rueegsegger [Tue, 11 Sep 2012 17:17:23 +0000 (19:17 +0200)]
charon-tkm: Register kernel_netlink_net

Explicitly register kernel netlink net implementation and avoid loading
the whole kernel-netlink plugin since the kernel netlink ipsec part is

9 years agoDo not return shared secret in TKM Diffie-Hellman
Adrian-Ken Rueegsegger [Tue, 11 Sep 2012 17:13:29 +0000 (19:13 +0200)]
Do not return shared secret in TKM Diffie-Hellman

Since the TKM handles all relevant key material, charon-tkm must not
have access to it anymore. Thus the ike_dh_get_shared_secret operation
is not available anymore.

9 years agoRemove keymat proxy from TKM keymat
Adrian-Ken Rueegsegger [Tue, 11 Sep 2012 17:04:55 +0000 (19:04 +0200)]
Remove keymat proxy from TKM keymat

Since the TKM completely handles key derivation and installation there
is no need for the keymat proxy anymore.

9 years agoRemove netlink proxy from TKM kernel interface
Reto Buerki [Tue, 11 Sep 2012 16:32:50 +0000 (18:32 +0200)]
Remove netlink proxy from TKM kernel interface

The TKM is now able to manage simple child SAs, so there is no need for
the netlink proxy anymore.

9 years agoAvoid proxy for bypass_socket, enable_udp_decap
Reto Buerki [Tue, 11 Sep 2012 16:24:21 +0000 (18:24 +0200)]
Avoid proxy for bypass_socket, enable_udp_decap

This is in preparation for the removal of the netlink kernel proxy. The
code is copied as-is from the kernel_netlink_ipsec plugin.

9 years agoImplement CHILD SA key derivation using TKM
Adrian-Ken Rueegsegger [Mon, 10 Sep 2012 08:43:05 +0000 (10:43 +0200)]
Implement CHILD SA key derivation using TKM

ESP SAs are created when adding CHILD SAs via the kernel ipsec

The encr_i key is used to transfer the context id of the parent IKE SA
from the keymat to the TKM kernel ipsec interface.

9 years agoRegister TKM kernel ipsec interface in charon-tkm
Adrian-Ken Rueegsegger [Fri, 7 Sep 2012 13:17:25 +0000 (15:17 +0200)]
Register TKM kernel ipsec interface in charon-tkm

9 years agoAdd TKM kernel ipsec skeleton
Adrian-Ken Rueegsegger [Fri, 7 Sep 2012 12:58:35 +0000 (14:58 +0200)]
Add TKM kernel ipsec skeleton

The existing kernel netlink ipsec interface is currently used as proxy
to perform the actual work. It will be gradually removed as the TKM
implements the needed features.

9 years agochunk_map: Store key, value pair in entry_t struct
Reto Buerki [Fri, 7 Sep 2012 13:44:37 +0000 (15:44 +0200)]
chunk_map: Store key, value pair in entry_t struct

To make the chunk map more robust it now stores a clone of the data
chunk given on insertion. The entry struct is needed to properly free
the allocated chunk after use.

9 years agoCall ike_isa_auth_psk in listener authorize hook
Reto Buerki [Thu, 6 Sep 2012 16:17:26 +0000 (18:17 +0200)]
Call ike_isa_auth_psk in listener authorize hook

This exchange initiates the AUTH verification in the TKM.

9 years agolistener: Register message hook
Reto Buerki [Fri, 31 Aug 2012 10:58:00 +0000 (12:58 +0200)]
listener: Register message hook

Use the message hook to save the AUTHENTICATION payload of an incoming
IKE_AUTH message.

The AUTH payload will be passed on to the TKM ike_isa_auth operation in
the authorize hook.

9 years agokeymat: Add AUTH payload setter/getter functions
Reto Buerki [Thu, 6 Sep 2012 15:27:45 +0000 (17:27 +0200)]
keymat: Add AUTH payload setter/getter functions

These functions are used in the TKM specific bus listener to
store/retrieve the AUTH payload chunk in the message/authorize hooks.

9 years agoRegister TKM bus listener in charon-tkm
Reto Buerki [Fri, 31 Aug 2012 09:13:39 +0000 (11:13 +0200)]
Register TKM bus listener in charon-tkm

9 years agoAdd TKM specific bus listener skeleton
Reto Buerki [Fri, 31 Aug 2012 09:11:30 +0000 (11:11 +0200)]
Add TKM specific bus listener skeleton

This listener gets informed about IKE authorization rounds and will be
used to call ike_isa_auth on a given ISA.

9 years agoAdd ISA context id getter to TKM keymat
Reto Buerki [Fri, 31 Aug 2012 09:24:45 +0000 (11:24 +0200)]
Add ISA context id getter to TKM keymat

9 years agokeymat: Acquire AE context ID on initialization
Reto Buerki [Fri, 31 Aug 2012 08:13:55 +0000 (10:13 +0200)]
keymat: Acquire AE context ID on initialization

9 years agoAdd TKM_CTX_AE (Authenticated Endpoint context)
Reto Buerki [Thu, 30 Aug 2012 13:07:21 +0000 (15:07 +0200)]
Add TKM_CTX_AE (Authenticated Endpoint context)

9 years agokeymat: Acquire ISA context ID on initialization
Reto Buerki [Thu, 30 Aug 2012 12:42:19 +0000 (14:42 +0200)]
keymat: Acquire ISA context ID on initialization

9 years agoAdd TKM_CTX_ISA (IKE SA context)
Reto Buerki [Thu, 30 Aug 2012 12:36:06 +0000 (14:36 +0200)]
Add TKM_CTX_ISA (IKE SA context)

9 years agoUse remote PSK signature computed by TKM
Reto Buerki [Thu, 30 Aug 2012 11:57:58 +0000 (13:57 +0200)]
Use remote PSK signature computed by TKM

9 years agokeymat: Check for aes256-sha512 in derive_ike_keys
Reto Buerki [Thu, 30 Aug 2012 09:25:14 +0000 (11:25 +0200)]
keymat: Check for aes256-sha512 in derive_ike_keys

Return FALSE if peers try to use other algorithm combinations.

9 years agokeymat: Call ike_isa_sign_psk in get_psk_sig
Adrian-Ken Rueegsegger [Wed, 29 Aug 2012 16:32:28 +0000 (18:32 +0200)]
keymat: Call ike_isa_sign_psk in get_psk_sig

Get PSK signed AUTH octets from TKM in initiator case.

9 years agoFactor out AEAD transform creation
Reto Buerki [Wed, 29 Aug 2012 08:38:47 +0000 (10:38 +0200)]
Factor out AEAD transform creation

Introduce static aead_create_from_keys function to initialize AEAD
transforms from key chunks.

9 years agoAdd keymat IKE key derivation test case
Reto Buerki [Wed, 29 Aug 2012 07:48:14 +0000 (09:48 +0200)]
Add keymat IKE key derivation test case

9 years agokeymat: Create inbound and outbound AEAD transforms
Reto Buerki [Wed, 29 Aug 2012 07:44:17 +0000 (09:44 +0200)]
keymat: Create inbound and outbound AEAD transforms

Create and initialize AEAD transforms with keys derived by the TKM.
Return these transforms in the get_aead function.

IKE keys used by charon are derived by TKM now.