aboutsummaryrefslogtreecommitdiff
path: root/openssl/vendor/current/demos/pkcs12/pkwrite.c
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2006-06-20 17:32:05 +0000
committerRob Austein <sra@hactrn.net>2006-06-20 17:32:05 +0000
commiteca4feb580cffd6af474f599efe3fe99505a525c (patch)
tree59fa47c6f197931d6da746cadf7ad37ff1ec4557 /openssl/vendor/current/demos/pkcs12/pkwrite.c
Importing OpenSSL 0.9.8b
svn path=/openssl/vendor/current/CHANGES; revision=1
Diffstat (limited to 'openssl/vendor/current/demos/pkcs12/pkwrite.c')
-rw-r--r--openssl/vendor/current/demos/pkcs12/pkwrite.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/openssl/vendor/current/demos/pkcs12/pkwrite.c b/openssl/vendor/current/demos/pkcs12/pkwrite.c
new file mode 100644
index 00000000..15f839d1
--- /dev/null
+++ b/openssl/vendor/current/demos/pkcs12/pkwrite.c
@@ -0,0 +1,46 @@
+/* pkwrite.c */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <openssl/pem.h>
+#include <openssl/err.h>
+#include <openssl/pkcs12.h>
+
+/* Simple PKCS#12 file creator */
+
+int main(int argc, char **argv)
+{
+ FILE *fp;
+ EVP_PKEY *pkey;
+ X509 *cert;
+ PKCS12 *p12;
+ if (argc != 5) {
+ fprintf(stderr, "Usage: pkwrite infile password name p12file\n");
+ exit(1);
+ }
+ SSLeay_add_all_algorithms();
+ ERR_load_crypto_strings();
+ if (!(fp = fopen(argv[1], "r"))) {
+ fprintf(stderr, "Error opening file %s\n", argv[1]);
+ exit(1);
+ }
+ cert = PEM_read_X509(fp, NULL, NULL, NULL);
+ rewind(fp);
+ pkey = PEM_read_PrivateKey(fp, NULL, NULL, NULL);
+ fclose(fp);
+ p12 = PKCS12_create(argv[2], argv[3], pkey, cert, NULL, 0,0,0,0,0);
+ if(!p12) {
+ fprintf(stderr, "Error creating PKCS#12 structure\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
+ }
+ if (!(fp = fopen(argv[4], "wb"))) {
+ fprintf(stderr, "Error opening file %s\n", argv[1]);
+ ERR_print_errors_fp(stderr);
+ exit(1);
+ }
+ i2d_PKCS12_fp(fp, p12);
+ PKCS12_free(p12);
+ fclose(fp);
+ return 0;
+}