Parcourir la source

Add support to eap_peer for client cert and CA cert on smartcard and in
phase2 auth.

David Smith il y a 17 ans
Parent
commit
d1f73353bc
2 fichiers modifiés avec 45 ajouts et 0 suppressions
  1. 38 0
      src/eap_peer/eap_config.h
  2. 7 0
      src/eap_peer/eap_tls_common.c

+ 38 - 0
src/eap_peer/eap_config.h

@@ -416,6 +416,44 @@ struct eap_peer_config {
 	 */
 	char *key_id;
 
+	/**
+	 * cert_id - Cert ID for OpenSSL engine
+	 *
+	 * This is used if the certificate operations for EAP-TLS are performed
+	 * using a smartcard.
+	 */
+	char *cert_id;
+
+	/**
+	 * ca_cert_id - CA Cert ID for OpenSSL engine
+	 *
+	 * This is used if the CA certificate for EAP-TLS is on a smartcard.
+	 */
+	char *ca_cert_id;
+
+	/**
+	 * key2_id - Key ID for OpenSSL engine (phase2)
+	 *
+	 * This is used if private key operations for EAP-TLS are performed
+	 * using a smartcard.
+	 */
+	char *key2_id;
+
+	/**
+	 * cert2_id - Cert ID for OpenSSL engine (phase2)
+	 *
+	 * This is used if the certificate operations for EAP-TLS are performed
+	 * using a smartcard.
+	 */
+	char *cert2_id;
+
+	/**
+	 * ca_cert2_id - CA Cert ID for OpenSSL engine (phase2)
+	 *
+	 * This is used if the CA certificate for EAP-TLS is on a smartcard.
+	 */
+	char *ca_cert2_id;
+
 	/**
 	 * otp - One-time-password
 	 *

+ 7 - 0
src/eap_peer/eap_tls_common.c

@@ -59,6 +59,8 @@ static void eap_tls_params_from_conf1(struct tls_connection_params *params,
 	params->engine_id = config->engine_id;
 	params->pin = config->pin;
 	params->key_id = config->key_id;
+	params->cert_id = config->cert_id;
+	params->ca_cert_id = config->ca_cert_id;
 }
 
 
@@ -73,6 +75,11 @@ static void eap_tls_params_from_conf2(struct tls_connection_params *params,
 	params->dh_file = (char *) config->dh_file2;
 	params->subject_match = (char *) config->subject_match2;
 	params->altsubject_match = (char *) config->altsubject_match2;
+	params->engine_id = config->engine_id;
+	params->pin = config->pin;
+	params->key_id = config->key2_id;
+	params->cert_id = config->cert2_id;
+	params->ca_cert_id = config->ca_cert2_id;
 }