ECDH support (both OpenSSL and PolarSSL now)
PATCH v2 1/1 ECDH support (both OpenSSL and PolarSSL now)
Hi,
As discussed earlier today, updated patches for ECDH support. See
http://article.gmane.org/gmane.network.openvpn.devel/8308 for the previous version.
These patches comprise two changes:
1) Because the PolarSSL 1.3 patches have been merged, I updated the code and docs to reflect that PolarSSL builds have EC-crypto support too. PolarSSL does not support forcing an ECDH curve like OpenSSL does, it can merely restrict the available curves.
2) Add #ifdefs around the OpenSSL EC-crypto code, because some distros (notably, RHEL) ship with OpenSSL libraries without EC-crypto.
-Steffan
PATCH 1/2 Add support for elliptic curve diffie-hellmann key exchange (ECDH)
This patch is based on Jan Just Keijser's patch from Feb 7, 2012.
When OpenSSL 1.0.2+ or PolarSSL is used, lets the crypto library do the heavy lifting. For OpenSSL builds, if a user specifies a curve using --ecdh-curve, it first tries to override automatic selection using that curve.
For older OpenSSL, tries the following things (in order of preference):
* When supplied, use the ecdh curve specified by the user.
* Try to extract the curve from the private key, use the same curve.
* Fall back on secp384r1 curve.
Note that although a curve lookup might succeed, OpenSSL 1.0.0 and older do *not* support TLSv1.1 or TLSv1.2, which means no that no EC-crypto can be used.
--- README.ec | 35 ++++++++++++++ doc/openvpn.8 | 14 ++++++ src/openvpn/init.c | 4 +- src/openvpn/options.c | 11 +++++ src/openvpn/options.h | 2 + src/openvpn/ssl.c | 4 ++ src/openvpn/ssl_backend.h | 15 ++++++ src/openvpn/ssl_openssl.c | 116 +++++++++++++++++++++++++++++++++++++++++++++ src/openvpn/ssl_polarssl.c | 26 ++++++++++ 9 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 README.ec
README.ec new file +35 -0
@@ -0,0 +1,35 @@ +Since 2.4.0, OpenVPN has official support for elliptic curve crypto. Elliptic +curves are an alternative to RSA for asymmetric encryption. + +Elliptic curve crypto ('ECC') can be used for the ('TLS') control channel only +in OpenVPN; the data channel (encrypting the actual network traffic) uses +symmetric encryption. ECC can be used in TLS for authentication (ECDSA) and key +exchange (ECDH). + +Key exchange (ECDH) +------------------- +OpenVPN 2.4.0 and newer automatically initialize ECDH parameters. When ECDSA is +used for authentication, the curve used for the server certificate will be used +for ECDH too. When autodetection fails (e.g. when using RSA certificates) +OpenVPN lets the crypto library decide if possible, or falls back to the +secp384r1 curve. + +An administrator can force an OpenVPN/OpenSSL server to use a specific curve +using the --ecdh-curve <curvename> option with one of the curves listed as +available by the --show-curves option. Clients will use the same curve as +selected by the server. + +Note that not all curves listed by --show-curves are available for use with TLS; +in that case connecting will fail with a 'no shared cipher' TLS error. + +Authentication (ECDSA) +---------------------- +Since OpenVPN 2.4.0, using ECDSA certificates works 'out of the box'. Which +specific curves and cipher suites are available depends on your version and +configuration of the crypto library. The crypto library will automatically +select a cipher suite for the TLS control channel. + +Support for generating an ECDSA certificate chain is available in EasyRSA (in +spite of it's name) since EasyRSA 3.0. The parameters you're looking for are +'--use-algo=ec' and '--curve=<curve_name>'. See the EasyRSA documentation for +more details on generating ECDSA certificates.
doc/openvpn.8 +14 -0
@@ -4246,6 +4246,13 @@ included with the OpenVPN distribution. Diffie Hellman parameters may be considered public. .\"********************************************************* .TP +.B \-\-ecdh-curve name +Specify the curve to use for elliptic curve Diffie Hellman. Available +curves can be listed with +.B \-\-show-curves +. The specified curve will only be used for ECDH TLS-ciphers. +.\"********************************************************* +.TP .B \-\-cert file Local peer's signed certificate in .pem format \-\- must be signed by a certificate authority whose certificate is in
@@ -5027,6 +5034,13 @@ lowest. Show currently available hardware-based crypto acceleration engines supported by the OpenSSL library. .\"********************************************************* +.TP +.B \-\-show-curves +(Standalone) +Show all available elliptic curves to use with the +.B \-\-ecdh-curve +option. +.\"********************************************************* .SS Generate a random key: Used only for non-TLS static key encryption mode. .\"*********************************************************
src/openvpn/init.c +3 -1
@@ -871,7 +871,7 @@ print_openssl_info (const struct options *options)#ifdef ENABLE_CRYPTO if (options->show_ciphers || options->show_digests || options->show_engines #ifdef ENABLE_SSL - || options->show_tls_ciphers + || options->show_tls_ciphers || options->show_curves #endif ) {
@@ -884,6 +884,8 @@ print_openssl_info (const struct options *options)#ifdef ENABLE_SSL if (options->show_tls_ciphers)show_available_tls_ciphers (options->cipher_list); +if (options->show_curves) +show_available_curves ();#endif return true; }
src/openvpn/options.c +11 -0
@@ -854,6 +854,7 @@ init_options (struct options *o, const bool init_gc) o->renegotiate_seconds =3600 ; o->handshake_window =60 ; o->transition_window =3600 ; + o->ecdh_curve =NULL ;#ifdef ENABLE_X509ALTUSERNAME o->x509_username_field =X509_USERNAME_FIELD_DEFAULT ;#endif
@@ -6516,6 +6517,16 @@ add_option (struct options *options,VERIFY_PERMISSION (OPT_P_GENERAL ); options->show_tls_ciphers = true; } +else if (streq (p[0 ],"show-curves" )) + { +VERIFY_PERMISSION (OPT_P_GENERAL ); + options->show_curves = true; + } +else if (streq (p[0 ],"ecdh-curve" ) && p[1 ]) + { +VERIFY_PERMISSION (OPT_P_CRYPTO ); + options->ecdh_curve= p[1 ]; + }else if (streq (p[0 ],"tls-server" )) {VERIFY_PERMISSION (OPT_P_GENERAL );
src/openvpn/options.h +2 -0
@@ -201,6 +201,7 @@ struct optionsbool show_engines;#ifdef ENABLE_SSL bool show_tls_ciphers; +bool show_curves;#endif bool genkey;#endif
@@ -515,6 +516,7 @@ struct optionsconst char *priv_key_file;const char *pkcs12_file;const char *cipher_list; +const char *ecdh_curve;const char *tls_verify;int verify_x509_type;const char *verify_x509_name;
src/openvpn/ssl.c +4 -0
@@ -555,6 +555,10 @@ init_ssl (const struct options *options, struct tls_root_ctx *new_ctx)tls_ctx_load_extra_certs (new_ctx, options->extra_certs_file, options->extra_certs_file_inline); } +/* Once keys and cert are loaded, load ECDH parameters */ +if (options->tls_server) +tls_ctx_load_ecdh_params (new_ctx, options->ecdh_curve); +/* Allowable ciphers */ tls_ctx_restrict_ciphers (new_ctx, options->cipher_list);
src/openvpn/ssl_backend.h +15 -0
@@ -186,6 +186,16 @@ void tls_ctx_load_dh_params(struct tls_root_ctx *ctx, const char *dh_file, const char *dh_file_inline);/** +* Load Elliptic Curve Parameters, and load them into the library-specific +* TLS context. +* +* @param ctx TLS context to use +* @param curve_name The name of the elliptic curve to load. +*/ +void tls_ctx_load_ecdh_params (struct tls_root_ctx *ctx,const char *curve_name + ); + +/** * Load PKCS #12 file for key, cert and (optionally) CA certs, and add to * library-specific TLS context. *
@@ -461,6 +471,11 @@ void print_details (struct key_state_ssl * ks_ssl, const char *prefix);void show_available_tls_ciphers (const char *tls_ciphers);/* +* Show the available elliptic curves in the crypto library +*/ +void show_available_curves (void ); + +/* * The OpenSSL library has a notion of preference in TLS ciphers. Higher * preference == more secure. Return the highest preference cipher. */
src/openvpn/ssl_openssl.c +116 -0
134 lines not on this page · raw message
src/openvpn/ssl_polarssl.c +26 -0
@@ -228,6 +228,15 @@ else (counter_type) 8 * mpi_size(&ctx->dhm_ctx->P)); } +void +tls_ctx_load_ecdh_params (struct tls_root_ctx *ctx,const char *curve_name + ) +{ +if (NULL != curve_name) +msg (M_WARN ,"WARNING: PolarSSL builds do not support specifying an ECDH " +"curve, using default curves." ); +} + int tls_ctx_load_pkcs12(struct tls_root_ctx *ctx, const char *pkcs12_file, const char *pkcs12_file_inline,
@@ -1084,6 +1093,23 @@ show_available_tls_ciphers (const char *cipher_list) }void +show_available_curves (void ) +{ +const ecp_curve_info *pcurve =ecp_curve_list (); + +if (NULL == pcurve) +msg (M_FATAL ,"Cannot retrieve curve list from PolarSSL" ); + +/* Print curve list */ +printf ("Available Elliptic curves, listed in order of preference:\n\n" ); +while (POLARSSL_ECP_DP_NONE != pcurve->grp_id) + { +printf ("%s\n" , pcurve->name); + pcurve++; + } +} + +void get_highest_preference_tls_cipher (char *buf,int size) {const char *cipher_name;
Signature · 1 line
1.8.3.2
Re: [Openvpn-devel] [PATCH 1/2] Add support for elliptic curve diffie-hellmann key exchange (ECDH)
Quoted 1 line · Steffan Karger
[ ECDH patch ]
... and attached a v3 of this patch with better debug / warning messages when using an OpenSSL build without EC-crypto.
-Steffan
From 91bb1da0c2fb385e4a73ef1068c381797bbbe22f Mon Sep 17 00:00:00 2001
From: Steffan Karger <[email protected]...>
Date: Thu, 24 Apr 2014 00:31:08 +0200
Subject: [PATCH 1/2] Add support for elliptic curve diffie-hellmann key
exchange (ECDH)
This patch is based on Jan Just Keijser's patch from Feb 7, 2012.
When OpenSSL 1.0.2+ or PolarSSL is used, lets the crypto library do the heavy lifting. For OpenSSL builds, if a user specifies a curve using --ecdh-curve, it first tries to override automatic selection using that curve.
For older OpenSSL, tries the following things (in order of preference):
* When supplied, use the ecdh curve specified by the user.
* Try to extract the curve from the private key, use the same curve.
* Fall back on secp384r1 curve.
Note that although a curve lookup might succeed, OpenSSL 1.0.0 and older do *not* support TLSv1.1 or TLSv1.2, which means no that no EC-crypto can be used.
--- README.ec | 35 +++++++++++++ doc/openvpn.8 | 14 ++++++ src/openvpn/init.c | 4 +- src/openvpn/options.c | 11 +++++ src/openvpn/options.h | 2 + src/openvpn/ssl.c | 4 ++ src/openvpn/ssl_backend.h | 15 ++++++ src/openvpn/ssl_openssl.c | 119 +++++++++++++++++++++++++++++++++++++++++++++ src/openvpn/ssl_polarssl.c | 26 ++++++++++ 9 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 README.ec
README.ec new file +35 -0
@@ -0,0 +1,35 @@ +Since 2.4.0, OpenVPN has official support for elliptic curve crypto. Elliptic +curves are an alternative to RSA for asymmetric encryption. + +Elliptic curve crypto ('ECC') can be used for the ('TLS') control channel only +in OpenVPN; the data channel (encrypting the actual network traffic) uses +symmetric encryption. ECC can be used in TLS for authentication (ECDSA) and key +exchange (ECDH). + +Key exchange (ECDH) +------------------- +OpenVPN 2.4.0 and newer automatically initialize ECDH parameters. When ECDSA is +used for authentication, the curve used for the server certificate will be used +for ECDH too. When autodetection fails (e.g. when using RSA certificates) +OpenVPN lets the crypto library decide if possible, or falls back to the +secp384r1 curve. + +An administrator can force an OpenVPN/OpenSSL server to use a specific curve +using the --ecdh-curve <curvename> option with one of the curves listed as +available by the --show-curves option. Clients will use the same curve as +selected by the server. + +Note that not all curves listed by --show-curves are available for use with TLS; +in that case connecting will fail with a 'no shared cipher' TLS error. + +Authentication (ECDSA) +---------------------- +Since OpenVPN 2.4.0, using ECDSA certificates works 'out of the box'. Which +specific curves and cipher suites are available depends on your version and +configuration of the crypto library. The crypto library will automatically +select a cipher suite for the TLS control channel. + +Support for generating an ECDSA certificate chain is available in EasyRSA (in +spite of it's name) since EasyRSA 3.0. The parameters you're looking for are +'--use-algo=ec' and '--curve=<curve_name>'. See the EasyRSA documentation for +more details on generating ECDSA certificates.
doc/openvpn.8 +14 -0
@@ -4246,6 +4246,13 @@ included with the OpenVPN distribution. Diffie Hellman parameters may be considered public. .\"********************************************************* .TP +.B \-\-ecdh-curve name +Specify the curve to use for elliptic curve Diffie Hellman. Available +curves can be listed with +.B \-\-show-curves +. The specified curve will only be used for ECDH TLS-ciphers. +.\"********************************************************* +.TP .B \-\-cert file Local peer's signed certificate in .pem format \-\- must be signed by a certificate authority whose certificate is in
@@ -5027,6 +5034,13 @@ lowest. Show currently available hardware-based crypto acceleration engines supported by the OpenSSL library. .\"********************************************************* +.TP +.B \-\-show-curves +(Standalone) +Show all available elliptic curves to use with the +.B \-\-ecdh-curve +option. +.\"********************************************************* .SS Generate a random key: Used only for non-TLS static key encryption mode. .\"*********************************************************
src/openvpn/init.c +3 -1
@@ -871,7 +871,7 @@ print_openssl_info (const struct options *options)#ifdef ENABLE_CRYPTO if (options->show_ciphers || options->show_digests || options->show_engines #ifdef ENABLE_SSL - || options->show_tls_ciphers + || options->show_tls_ciphers || options->show_curves #endif ) {
@@ -884,6 +884,8 @@ print_openssl_info (const struct options *options)#ifdef ENABLE_SSL if (options->show_tls_ciphers)show_available_tls_ciphers (options->cipher_list); +if (options->show_curves) +show_available_curves ();#endif return true; }
src/openvpn/options.c +11 -0
@@ -854,6 +854,7 @@ init_options (struct options *o, const bool init_gc) o->renegotiate_seconds =3600 ; o->handshake_window =60 ; o->transition_window =3600 ; + o->ecdh_curve =NULL ;#ifdef ENABLE_X509ALTUSERNAME o->x509_username_field =X509_USERNAME_FIELD_DEFAULT ;#endif
@@ -6516,6 +6517,16 @@ add_option (struct options *options,VERIFY_PERMISSION (OPT_P_GENERAL ); options->show_tls_ciphers = true; } +else if (streq (p[0 ],"show-curves" )) + { +VERIFY_PERMISSION (OPT_P_GENERAL ); + options->show_curves = true; + } +else if (streq (p[0 ],"ecdh-curve" ) && p[1 ]) + { +VERIFY_PERMISSION (OPT_P_CRYPTO ); + options->ecdh_curve= p[1 ]; + }else if (streq (p[0 ],"tls-server" )) {VERIFY_PERMISSION (OPT_P_GENERAL );
src/openvpn/options.h +2 -0
@@ -201,6 +201,7 @@ struct optionsbool show_engines;#ifdef ENABLE_SSL bool show_tls_ciphers; +bool show_curves;#endif bool genkey;#endif
@@ -515,6 +516,7 @@ struct optionsconst char *priv_key_file;const char *pkcs12_file;const char *cipher_list; +const char *ecdh_curve;const char *tls_verify;int verify_x509_type;const char *verify_x509_name;
src/openvpn/ssl.c +4 -0
@@ -555,6 +555,10 @@ init_ssl (const struct options *options, struct tls_root_ctx *new_ctx)tls_ctx_load_extra_certs (new_ctx, options->extra_certs_file, options->extra_certs_file_inline); } +/* Once keys and cert are loaded, load ECDH parameters */ +if (options->tls_server) +tls_ctx_load_ecdh_params (new_ctx, options->ecdh_curve); +/* Allowable ciphers */ tls_ctx_restrict_ciphers (new_ctx, options->cipher_list);
src/openvpn/ssl_backend.h +15 -0
@@ -186,6 +186,16 @@ void tls_ctx_load_dh_params(struct tls_root_ctx *ctx, const char *dh_file, const char *dh_file_inline);/** +* Load Elliptic Curve Parameters, and load them into the library-specific +* TLS context. +* +* @param ctx TLS context to use +* @param curve_name The name of the elliptic curve to load. +*/ +void tls_ctx_load_ecdh_params (struct tls_root_ctx *ctx,const char *curve_name + ); + +/** * Load PKCS #12 file for key, cert and (optionally) CA certs, and add to * library-specific TLS context. *
@@ -461,6 +471,11 @@ void print_details (struct key_state_ssl * ks_ssl, const char *prefix);void show_available_tls_ciphers (const char *tls_ciphers);/* +* Show the available elliptic curves in the crypto library +*/ +void show_available_curves (void ); + +/* * The OpenSSL library has a notion of preference in TLS ciphers. Higher * preference == more secure. Return the highest preference cipher. */
src/openvpn/ssl_openssl.c +119 -0
137 lines not on this page · raw message
src/openvpn/ssl_polarssl.c +26 -0
@@ -228,6 +228,15 @@ else (counter_type) 8 * mpi_size(&ctx->dhm_ctx->P)); } +void +tls_ctx_load_ecdh_params (struct tls_root_ctx *ctx,const char *curve_name + ) +{ +if (NULL != curve_name) +msg (M_WARN ,"WARNING: PolarSSL builds do not support specifying an ECDH " +"curve, using default curves." ); +} + int tls_ctx_load_pkcs12(struct tls_root_ctx *ctx, const char *pkcs12_file, const char *pkcs12_file_inline,
@@ -1084,6 +1093,23 @@ show_available_tls_ciphers (const char *cipher_list) }void +show_available_curves (void ) +{ +const ecp_curve_info *pcurve =ecp_curve_list (); + +if (NULL == pcurve) +msg (M_FATAL ,"Cannot retrieve curve list from PolarSSL" ); + +/* Print curve list */ +printf ("Available Elliptic curves, listed in order of preference:\n\n" ); +while (POLARSSL_ECP_DP_NONE != pcurve->grp_id) + { +printf ("%s\n" , pcurve->name); + pcurve++; + } +} + +void get_highest_preference_tls_cipher (char *buf,int size) {const char *cipher_name;
Signature · 1 line
1.8.3.2
Re: [Openvpn-devel] [PATCH 1/2] Add support for elliptic curve diffie-hellmann key exchange (ECDH)
Am 24.04.14 23:02, schrieb Steffan Karger:
Quoted 4 lines · Steffan Karger
Quoted 1 line
[ ECDH patch ]
... and attached a v3 of this patch with better debug / warning messages when using an OpenSSL build without EC-crypto.
ACK to this version
[Openvpn-devel] [PATCH applied] Re: Add support for elliptic curve diffie-hellmann key exchange (ECDH)
In reply to Steffan KargerYour patch has been applied to the master branch.
commit 609e8131427686adca9b4ed2db44db4aaa920a01
Author: Steffan Karger Date: Thu Apr 24 00:31:08 2014 +0200
Add support for elliptic curve diffie-hellmann key exchange (ECDH)
Signed-off-by: Steffan Karger <[email protected]...>
Acked-by: Arne Schwabe <[email protected]...>
Message-Id: <[email protected]...>
URL: http://article.gmane.org/gmane.network.openvpn.devel/8625
Signed-off-by: Gert Doering <[email protected]...>--
kind regards,
Gert Doering
PATCH 2/2 Add an elliptic curve testing cert chain to the sample keys
In reply to Steffan Karger--- sample/sample-keys/README | 6 ++-- sample/sample-keys/ec-ca.crt | 13 +++++++++ sample/sample-keys/ec-ca.key | 6 ++++ sample/sample-keys/ec-client.crt | 61 ++++++++++++++++++++++++++++++++++++++++ sample/sample-keys/ec-client.key | 6 ++++ sample/sample-keys/ec-server.crt | 61 ++++++++++++++++++++++++++++++++++++++++ sample/sample-keys/ec-server.key | 6 ++++ 7 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 sample/sample-keys/ec-ca.crt create mode 100644 sample/sample-keys/ec-ca.key create mode 100644 sample/sample-keys/ec-client.crt create mode 100644 sample/sample-keys/ec-client.key create mode 100644 sample/sample-keys/ec-server.crt create mode 100644 sample/sample-keys/ec-server.key
sample/sample-keys/README +3 -3
@@ -1,7 +1,6 @@ -Sample RSA keys. +Sample RSA and EC keys. -See the examples section of the man page -for usage examples. +See the examples section of the man page for usage examples. NOTE: THESE KEYS ARE FOR TESTING PURPOSES ONLY. DON'T USE THEM FOR ANY REAL WORK BECAUSE
@@ -12,3 +11,4 @@ client.{crt,key} -- sample client key/cert server.{crt,key} -- sample server key/cert (nsCertType=server) pass.{crt,key} -- sample client key/cert with password-encrypted key password = "password" +ec-*.{crt,key} -- sample elliptic curve variants of the above
sample/sample-keys/ec-ca.crt new file +13 -0
@@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB4jCCAWmgAwIBAgIJALGEGB2g6cAXMAoGCCqGSM49BAMCMBUxEzARBgNVBAMT +CkVDLVRlc3QgQ0EwHhcNMTQwMTE4MTYwMTUzWhcNMjQwMTE2MTYwMTUzWjAVMRMw +EQYDVQQDEwpFQy1UZXN0IENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE2S4AZT7j +ZlPG/CXpT12CzCNSySyKmJt+fWyW/wzbRulVJpGHXRHpZZj2VNOUE72kqGUeshh6 +Um1o7lHGDSAkHOJpeW5FtryiKhwFc+4dsOCLTNLVFXQsEtY3gY14Uquio4GEMIGB +MB0GA1UdDgQWBBS0mkFcuCZ8SLWZRAD/8LpBQcgGPDBFBgNVHSMEPjA8gBS0mkFc +uCZ8SLWZRAD/8LpBQcgGPKEZpBcwFTETMBEGA1UEAxMKRUMtVGVzdCBDQYIJALGE +GB2g6cAXMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMAoGCCqGSM49BAMCA2cA +MGQCMHWlVTi0xNZstR8ZNH+7z0WlyIXyZe23ne3EXkO0thZLdv86kpxFMPW/llB+ +RMRKuQIweN97n7FQy5DTenr91U98KDFJ5Av4mDFRL1mkXiu3W1//4XD8yEYDQTRz +/GARuOLL +-----END CERTIFICATE-----
sample/sample-keys/ec-ca.key new file +6 -0
@@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDASU6X/mh2m2PayviL3 +teoml5soyIUcZfwZpVn6oNtnrLcAbIRsAJbM4xyGVp77G/6hZANiAATZLgBlPuNm +U8b8JelPXYLMI1LJLIqYm359bJb/DNtG6VUmkYddEellmPZU05QTvaSoZR6yGHpS +bWjuUcYNICQc4ml5bkW2vKIqHAVz7h2w4ItM0tUVdCwS1jeBjXhSq6I= +-----END PRIVATE KEY-----
sample/sample-keys/ec-client.crt new file +61 -0
61 lines not on this page · raw message
sample/sample-keys/ec-client.key new file +6 -0
@@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDD9Agj8nr/8sIr0XHky +mcn1oMb3vqOh2axFBaIvmOHYmqs11SIH1tKYelkNYy9zHTChZANiAARA2bmiRBsB +OSwU7qpwazGYKETJYby3C7VTScLACkOwCFDNgC9dpInx/30RePUMsobiWfgXdhsi +8iNn51WQ6s4KqtoF9IUZye2ubaOtVnr2M8bPu8c5+uTTZ9/wuEqIV5g= +-----END PRIVATE KEY-----
sample/sample-keys/ec-server.crt new file +61 -0
61 lines not on this page · raw message
sample/sample-keys/ec-server.key new file +6 -0
@@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDD8bQlwrFrXHPmem0bt +cBcU6nYfaZQbPdIDAB7edOOyevvzYH0qMtbaW95iSZLMRVWhZANiAAS9jDqvLi8u +3s/SOY25phOWgG21su6XYjuiMjh3Hvsq74ZL0J5LVeCbB/lkL2unF/1l3VA/HPr6 +Lzkul9SG5U5a0lAL9NcIYmdTRGLjJfL6NoSHHQPj6Z3ZZlHdtMTbCwU= +-----END PRIVATE KEY-----
Signature · 1 line
1.8.3.2
[Openvpn-devel] [PATCH applied] Re: Add an elliptic curve testing cert chain to the sample keys
Your patch has been applied to the master branch.
commit cdbd56ceeae4ef6352e19814447d402d0b5468c0
Author: Steffan Karger Date: Thu Apr 24 00:43:38 2014 +0200
Add an elliptic curve testing cert chain to the sample keys
Signed-off-by: Steffan Karger <[email protected]...>
Acked-by: Arne Schwabe <[email protected]...>
Message-Id: <[email protected]...>
URL: http://article.gmane.org/gmane.network.openvpn.devel/8601
Signed-off-by: Gert Doering <[email protected]...>--
kind regards,
Gert Doering