diff options
author | Rob Austein <sra@hactrn.net> | 2006-06-20 17:32:05 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2006-06-20 17:32:05 +0000 |
commit | eca4feb580cffd6af474f599efe3fe99505a525c (patch) | |
tree | 59fa47c6f197931d6da746cadf7ad37ff1ec4557 /openssl/vendor/current/demos/maurice/loadkeys.c |
Importing OpenSSL 0.9.8b
svn path=/openssl/vendor/current/CHANGES; revision=1
Diffstat (limited to 'openssl/vendor/current/demos/maurice/loadkeys.c')
-rw-r--r-- | openssl/vendor/current/demos/maurice/loadkeys.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/openssl/vendor/current/demos/maurice/loadkeys.c b/openssl/vendor/current/demos/maurice/loadkeys.c new file mode 100644 index 00000000..82fd22a9 --- /dev/null +++ b/openssl/vendor/current/demos/maurice/loadkeys.c @@ -0,0 +1,72 @@ +/* NOCW */ +/* + Please read the README file for condition of use, before + using this software. + + Maurice Gittens <mgittens@gits.nl> January 1997 + +*/ + +#include <unistd.h> +#include <stdio.h> +#include <netinet/in.h> +#include <fcntl.h> +#include <strings.h> +#include <stdlib.h> + +#include <openssl/rsa.h> +#include <openssl/evp.h> +#include <openssl/objects.h> +#include <openssl/x509.h> +#include <openssl/err.h> +#include <openssl/pem.h> +#include <openssl/ssl.h> + +EVP_PKEY * ReadPublicKey(const char *certfile) +{ + FILE *fp = fopen (certfile, "r"); + X509 *x509; + EVP_PKEY *pkey; + + if (!fp) + return NULL; + + x509 = PEM_read_X509(fp, NULL, 0, NULL); + + if (x509 == NULL) + { + ERR_print_errors_fp (stderr); + return NULL; + } + + fclose (fp); + + pkey=X509_extract_key(x509); + + X509_free(x509); + + if (pkey == NULL) + ERR_print_errors_fp (stderr); + + return pkey; +} + +EVP_PKEY *ReadPrivateKey(const char *keyfile) +{ + FILE *fp = fopen(keyfile, "r"); + EVP_PKEY *pkey; + + if (!fp) + return NULL; + + pkey = PEM_read_PrivateKey(fp, NULL, 0, NULL); + + fclose (fp); + + if (pkey == NULL) + ERR_print_errors_fp (stderr); + + return pkey; +} + + |