<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hello,</p>
<p><br>
</p>
<p>after some research, I think I can answer my own question in case anyone finds the same problem in the future.</p>
<p>The line that should be added in this case to ipsec.secrets is:</p>
<p><br>
</p>
<p><span><leftipaddress> : PIN %smartcard:N "1234"</span></p>
<p><span><br>
</span></p>
<p><span>Being N the slot number of the smartcard and "pin1234" the pin code.<br>
</span></p>
<p><span>More info here: <a href="https://wiki.strongswan.org/projects/strongswan/wiki/PinSecret" class="OWAAutoLink" id="LPlnk278467" previewremoved="true">
https://wiki.strongswan.org/projects/strongswan/wiki/PinSecret</a><br>
</span></p>
<p><span><br>
</span></p>
<p><span>After this step, I still had problems because when I wrote my engine, I didn't implement a PIN command.<br>
</span></p>
<p><span>This has to be added to your OpenSSL Engine implementation.</span></p>
<p><span><br>
</span></p>
<p><span>As an example, one can take a look to the implementation of the OpenSSL dynamic engine:</span></p>
<p><span><a href="https://github.com/openssl/openssl/blob/master/crypto/engine/eng_dyn.c" class="OWAAutoLink" id="LPlnk744285" previewremoved="true">https://github.com/openssl/openssl/blob/master/crypto/engine/eng_dyn.c</a><br>
</span></p>
<p><span><br>
</span></p>
<p><span>Now the key is loaded and everything works fine.<br>
</span></p>
<p><span>Hope this helps anyone.</span></p>
<p><span><br>
</span></p>
<p><span>Best regards,</span></p>
<p><span><br>
</span></p>
<p><span>Ignacio<br>
</span></p>
<p><span></span><br>
</p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>De:</b> Dev <dev-bounces@lists.strongswan.org> en nombre de Ignacio Alamo Corsino <nacao2001@hotmail.com><br>
<b>Enviado:</b> lunes, 7 de agosto de 2017 15:55<br>
<b>Para:</b> dev@lists.strongswan.org<br>
<b>Asunto:</b> [strongSwan-dev] Read private key with OpenSSL Engine</font>
<div> </div>
</div>
<div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Hello,</p>
<p><br>
</p>
<p>I have written an OpenSSL engine to communicate with my smartcard (no pkcs#11 involved).
<br>
</p>
<p>This engine loads some private key information from the smartcard <span>(n,e) </span>
and also performs private key operations like signing. </p>
<p>The private key is normally loaded with the <span>ENGINE_load_private_key</span> OpenSSL function.<br>
</p>
<p><br>
</p>
<p>The problem that I have is that I don't know how to tell strongSwan to load the private key information using my engine in ipsec.secrets,</p>
<p>so I always end up with an "<span>no private key found for 'Cert_XXXXXX'</span>" error.</p>
<p><br>
</p>
<p>I am aware that I should use the openssl plugin but I don't know how to apply it to this case.</p>
<p><br>
</p>
<p>Thanks for your time.</p>
<p><br>
</p>
<p>Regards,</p>
<p><br>
</p>
<p>Ignacio<br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
</div>
</div>
</div>
</body>
</html>