<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;color:black">I have softhsm-v2.5.0-rc1 which has ec keys imported in it. Now, when I try to use these keys from openssl CLI using the pkcs11 engine, it fails.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">1. SoftHSM version</span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ softhsm2-util --version</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">2.5.0rc1</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black"> </span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">2. SoftHSM token init</span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ softhsm2-util --init-token --slot 0 --label "token 2.5.0-rc1"</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">=== SO PIN (4-255 characters) ===</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please enter SO PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please reenter SO PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">=== User PIN (4-255 characters) ===</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please enter user PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please reenter user PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">The token has been initialized and is reassigned to slot 928024111</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">3. ECC key in pkcs8 format</span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ openssl pkey -in ~/tmp/secp256k1-key.pem.pkcs8 -text</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">-----BEGIN PRIVATE KEY-----</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgYCXpIJyEAexhkvrCMGlF</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">A4sQItcIp6wm83WVoeOFzEyhRANCAATMfAkLtsynHRmRyYLn+uRpJUm6bOZJBQhK</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">N81nJv06fN6MY0nEzWG9jJsvSNlf5jW7yecbje2wWQL/JYqviFwr</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">-----END PRIVATE KEY-----</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Private-Key: (256 bit)</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">priv:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    60:25:e9:20:9c:84:01:ec:61:92:fa:c2:30:69:45:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    03:8b:10:22:d7:08:a7:ac:26:f3:75:95:a1:e3:85:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    cc:4c</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">pub:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    04:cc:7c:09:0b:b6:cc:a7:1d:19:91:c9:82:e7:fa:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    e4:69:25:49:ba:6c:e6:49:05:08:4a:37:cd:67:26:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    fd:3a:7c:de:8c:63:49:c4:cd:61:bd:8c:9b:2f:48:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    d9:5f:e6:35:bb:c9:e7:1b:8d:ed:b0:59:02:ff:25:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">    8a:af:88:5c:2b</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">ASN1 OID: secp256k1</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">4. Import the key into softhsm</span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ softhsm2-util --import ~/tmp/secp256k1-key.pem.pkcs8 --label "ec key" --id 1111 --token "token 2.5.0-rc1"</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Found slot 928024111 with matching token label.</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">=== User PIN (4-255 characters) ===</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please enter user PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Please reenter user PIN: ****</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">The key pair has been imported.</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">5. Get the pkcs11 url for the private key</span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ p11tool --login --provider=/usr/local/lib/softhsm/libsofthsm2.so --set-pin=1111 --list-all</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Object 0:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                URL: pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=6a160d52b750862f;token=token%202.5.0-rc1;id=%11%11;object=ec%20key;type=private</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                Type: Private key</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                Label: ec key</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                Flags: CKA_PRIVATE; CKA_SENSITIVE; </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                ID: 11:11</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Object 1:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                URL: pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=6a160d52b750862f;token=token%202.5.0-rc1;id=%11%11;object=ec%20key;type=public</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                Type: Public key</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                Label: ec key</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">                ID: 11:11</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;color:black">6. Try to access key with openssl engine. </span></b><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ openssl version</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">OpenSSL 1.1.1  11 Sep 2018</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ more ~/tmp/openssl.cnf </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">openssl_conf = openssl_init</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[openssl_init]</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">engines=engine_section</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[engine_section]</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">pkcs11 = pkcs11_section</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black"> </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[pkcs11_section]</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">engine_id = pkcs11</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">dynamic_path = /Users/parashah/Downloads/libp11-0.4.9/src/.libs/pkcs11.dylib</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">MODULE_PATH = /usr/local/lib/softhsm/libsofthsm2.so </span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">init = 0</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">[]:~$ openssl pkey -in "pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=6a160d52b750862f;token=token%202.5.0-rc1;id=%11%11;object=ec%20key;type=private" -inform ENGINE -engine
 pkcs11 -text</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">engine "pkcs11" set.</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">Enter PKCS#11 token PIN for token 2.5.0-rc1:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">140736065815424:error:100C0010:elliptic curve routines:i2d_ECPrivateKey:EC lib:crypto/ec/ec_asn1.c:995:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">140736065815424:error:100D6010:elliptic curve routines:eckey_priv_encode:EC lib:crypto/ec/ec_ameth.c:242:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">140736065815424:error:06071092:digital envelope routines:EVP_PKEY2PKCS8:private key encode error:crypto/evp/evp_pkey.c:72:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">140736065815424:error:0907E073:PEM routines:do_pk8pkey:error converting private key:crypto/pem/pem_pk8.c:73:</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:11.0pt;color:black">====</span></i><span style="font-size:11.0pt;color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black">Please let me know if I am missing anything. Note that the same operations work fine on a RSA key.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-- <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Paras</span><o:p></o:p></p>
</div>
</body>
</html>