load_private_key() loads all kinds of keys
[strongswan.git] / src / pluto / certs.c
index 29e7dbf..ca3019b 100644 (file)
 /**
  * used for initializatin of certs
  */
-const cert_t empty_cert = {CERT_NONE, {NULL}};
+const cert_t cert_empty = {CERT_NONE, {NULL}};
 
 /**
  * extracts the certificate to be sent to the peer
  */
-chunk_t get_mycert(cert_t cert)
+chunk_t cert_get_encoding(cert_t cert)
 {
        switch (cert.type)
        {
@@ -51,6 +51,21 @@ chunk_t get_mycert(cert_t cert)
        }
 }
 
+public_key_t* cert_get_public_key(const cert_t cert)
+{
+       switch (cert.type)
+       {
+               case CERT_PGP:
+                       return cert.u.pgp->public_key;
+                       break;
+               case CERT_X509_SIGNATURE:
+                       return cert.u.x509->public_key;
+                       break;
+               default:
+                       return NULL;
+       }
+}
+
 /* load a coded key or certificate file with autodetection
  * of binary DER or base64 PEM ASN.1 formats and armored PGP format
  */
@@ -142,13 +157,13 @@ private_key_t* load_private_key(char* filename, prompt_pass_t *pass,
                }
                if (key == NULL)
                {
-                       plog("syntax error in %s private key file", pgp ? "PGP":"PKCS#");
+                       plog("  syntax error in %s private key file", pgp ? "PGP":"PKCS#");
                }                       
                free(blob.ptr);
        }
        else
        {
-               plog("error loading RSA private key file");
+               plog("  error loading private key file");
        }
        return key;
 }
@@ -170,7 +185,7 @@ bool load_cert(char *filename, const char *label, cert_t *cert)
                if (pgp)
                {
                        pgpcert_t *pgpcert = malloc_thing(pgpcert_t);
-                       *pgpcert = empty_pgpcert;
+                       *pgpcert = pgpcert_empty;
                        if (parse_pgp(blob, pgpcert, NULL))
                        {
                                cert->type = CERT_PGP;