<div>Hi Martin,</div>
<div> </div>
<div>Sorry.  To clarify some more, what I like to do is to use charon the IKEv2 daemon as is.  I just want to</div>
<div>have access to the keys that were already negotiated by charon.  I don't want to use ipsec from</div>
<div>strongswan but want to have access to keys used by IPsec ESP protocol.   </div>
<div> </div>
<div>Sounds like ike_keys()/child_keys() you mentioned are the way to go.  I'll check them out.</div>
<div> </div>
<div>Thanks,</div>
<div>Terry</div>
<div> </div>
<div class="gmail_quote">On Wed, Jun 22, 2011 at 12:11 AM, Martin Willi <span dir="ltr"><<a href="mailto:martin@strongswan.org" target="_blank">martin@strongswan.org</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Hi Terry,<br>
<div>
<div></div>
<div><br>> I have an encryption protocol that currently use pre-shared keys.  I<br>> would like to use charon from strongSwan to do the key exchange.<br>> What's the API to access those keys used by IPsec?  Also are those<br>
> keys in memory or in files?  If in files, where are they?<br><br></div></div>It's not really clear to me what you want to do. The IKEv2 protocol can<br>use pre-shared keys to authenticate the peers. These keys are usually<br>
stored in the ipsec.secrets file, but other credential backends<br>implementing the credential_set_t [1] interface can be used to query<br>secrets.<br><br>The actually used encryption keys are derived from a Diffie-Hellman<br>
exchange and other parameters. To intercept these keys programmatically,<br>you could implement the ike_keys()/child_keys() hooks [2] in your own<br>listener.<br><br>Regards<br>Martin<br><br>[1]<a href="http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/libstrongswan/credentials/credential_set.h;hb=HEAD#l83" target="_blank">http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/libstrongswan/credentials/credential_set.h;hb=HEAD#l83</a><br>
[2]<a href="http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/libcharon/bus/listeners/listener.h;hb=HEAD#l105" target="_blank">http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/libcharon/bus/listeners/listener.h;hb=HEAD#l105</a><br>
<br><br></blockquote></div><br>