Project

General

Profile

ECDSA Secret » History » Version 9

Tobias Brunner, 01.05.2017 17:47

1 4 Andreas Steffen
h1. ECDSA Secret
2 1 Andreas Steffen
3 6 Tobias Brunner
For  the  private key file both absolute paths or paths relative to [[IpsecDirectoryPrivate|/etc/ipsec.d/private]] are accepted. If the private key file is encrypted,   the  passphrase  must  be  defined.  Instead  of  a passphrase _%prompt_ can be used which then causes the daemons  to ask the user for the password whenever it is required to decrypt the key.
4 1 Andreas Steffen
5 4 Andreas Steffen
h2. Notation
6 1 Andreas Steffen
7 7 Tobias Brunner
: ECDSA _<private key file>_ [ _<passphrase>_ | _%prompt_ ]
8 4 Andreas Steffen
9 8 Noel Kuntze
h2. Encountered problems
10 8 Noel Kuntze
11 8 Noel Kuntze
Sometimes an ECDSA key fails to load for no reason and without an error message that points to a problem with access rights. When that is the case, try converting the private key into DER format and loading it again.
12 9 Tobias Brunner
13 6 Tobias Brunner
h2. Examples
14 1 Andreas Steffen
15 6 Tobias Brunner
<pre>
16 6 Tobias Brunner
: ECDSA moonKey.pem
17 6 Tobias Brunner
18 6 Tobias Brunner
: ECDSA sunKey.der "cjen4*lWnr3jsk"
19 6 Tobias Brunner
</pre>
20 1 Andreas Steffen
21 5 Tobias Brunner
h2. Creation of an ECDSA key using OpenSSL 0.9.8
22 4 Andreas Steffen
23 4 Andreas Steffen
24 4 Andreas Steffen
You can create an ECDSA key with the _openssl ecparam_ command.
25 4 Andreas Steffen
<pre>
26 1 Andreas Steffen
openssl ecparam -list_curves
27 4 Andreas Steffen
</pre>
28 1 Andreas Steffen
gives you a huge list of available elliptic curves but IKEv2 currently supports
29 1 Andreas Steffen
only the following three curves:
30 4 Andreas Steffen
<pre>
31 1 Andreas Steffen
prime256v1
32 1 Andreas Steffen
secp384r1
33 1 Andreas Steffen
secp521r1
34 4 Andreas Steffen
</pre>
35 1 Andreas Steffen
The creation of an EC key goes like this:
36 4 Andreas Steffen
<pre>
37 2 Andreas Steffen
openssl ecparam -genkey -name secp384r1 -noout -out ecKey.pem
38 4 Andreas Steffen
</pre>
39 1 Andreas Steffen
Verify the content of the key:
40 4 Andreas Steffen
<pre>
41 1 Andreas Steffen
openssl ec -in ecKey.pem -text
42 1 Andreas Steffen
43 1 Andreas Steffen
read EC key
44 1 Andreas Steffen
Private-Key: (384 bit)
45 1 Andreas Steffen
priv:
46 1 Andreas Steffen
    3c:75:17:c3:97:0b:b4:28:42:8c:b6:f5:56:57:32:
47 1 Andreas Steffen
    2b:c1:ff:e2:ee:62:25:38:04:b1:6a:f5:23:48:e1:
48 1 Andreas Steffen
    ba:79:ff:56:64:88:74:92:b7:c2:49:ab:8c:ff:b2:
49 1 Andreas Steffen
    7c:6c:b3
50 1 Andreas Steffen
pub:
51 1 Andreas Steffen
    04:f2:cd:ca:ae:37:38:8d:98:e0:1c:f4:26:59:af:
52 1 Andreas Steffen
    41:4d:fb:4f:d1:20:10:fb:88:b3:4a:b3:9b:a7:69:
53 1 Andreas Steffen
    dc:0b:5c:ef:06:22:6b:8e:08:c3:c2:74:1b:36:12:
54 1 Andreas Steffen
    8b:ee:45:c5:f8:3b:73:6f:0a:a4:c9:7c:e1:e9:a8:
55 1 Andreas Steffen
    e2:c9:7c:6f:f1:69:b4:45:ab:d3:45:89:41:6e:68:
56 1 Andreas Steffen
    9d:9a:d2:ee:fd:1a:a1:e6:ca:3f:4a:6b:0d:db:a5:
57 1 Andreas Steffen
    ef:93:95:4f:8c:4c:31
58 1 Andreas Steffen
ASN1 OID: secp384r1
59 2 Andreas Steffen
60 1 Andreas Steffen
writing EC key
61 1 Andreas Steffen
-----BEGIN EC PRIVATE KEY-----
62 1 Andreas Steffen
MIGkAgEBBDA8dRfDlwu0KEKMtvVWVzIrwf/i7mIlOASxavUjSOG6ef9WZIh0krfC
63 1 Andreas Steffen
SauM/7J8bLOgBwYFK4EEACKhZANiAATyzcquNziNmOAc9CZZr0FN+0/RIBD7iLNK
64 1 Andreas Steffen
s5unadwLXO8GImuOCMPCdBs2EovuRcX4O3NvCqTJfOHpqOLJfG/xabRFq9NFiUFu
65 1 Andreas Steffen
aJ2a0u79GqHmyj9Kaw3bpe+TlU+MTDE=
66 1 Andreas Steffen
-----END EC PRIVATE KEY-----
67 4 Andreas Steffen
</pre>