stroke: Add certificates extracted from PKCS#12 files to correct credential set
authorTobias Brunner <tobias@strongswan.org>
Mon, 15 Jul 2013 08:59:13 +0000 (10:59 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 15 Jul 2013 08:59:13 +0000 (10:59 +0200)
Only keys and shared secrets are moved from the temporary credential set after
loading all secrets.

src/libcharon/plugins/stroke/stroke_cred.c

index 4744178..8d00012 100644 (file)
@@ -975,8 +975,8 @@ static bool load_private(mem_cred_t *secrets, chunk_t line, int line_nr,
 /**
  * Load a PKCS#12 container
  */
-static bool load_pkcs12(mem_cred_t *secrets, chunk_t line, int line_nr,
-                                               FILE *prompt)
+static bool load_pkcs12(private_stroke_cred_t *this, mem_cred_t *secrets,
+                                               chunk_t line, int line_nr, FILE *prompt)
 {
        enumerator_t *enumerator;
        char path[PATH_MAX];
@@ -1009,7 +1009,7 @@ static bool load_pkcs12(mem_cred_t *secrets, chunk_t line, int line_nr,
                        DBG1(DBG_CFG, "  loaded certificate \"%Y\" from '%s'",
                                 cert->get_subject(cert), path);
                }
-               secrets->add_cert(secrets, TRUE, cert->get_ref(cert));
+               this->creds->add_cert(this->creds, TRUE, cert->get_ref(cert));
        }
        enumerator->destroy(enumerator);
        enumerator = pkcs12->create_key_enumerator(pkcs12);
@@ -1243,7 +1243,7 @@ static void load_secrets(private_stroke_cred_t *this, mem_cred_t *secrets,
                }
                else if (match("P12", &token))
                {
-                       if (!load_pkcs12(secrets, line, line_nr, prompt))
+                       if (!load_pkcs12(this, secrets, line, line_nr, prompt))
                        {
                                break;
                        }