Get rid of more non-ANSI declarations.
[openssl.git] / crypto / pkcs12 / p12_crt.c
index f2e0aac..a60b128 100644 (file)
  */
 
 #include <stdio.h>
  */
 
 #include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pem.h>
-#include <err.h>
-#include "pkcs12.h"
-
-PKCS12 *PKCS12_create(pass, name, pkey, cert, ca, nid_key, nid_cert, iter,
- mac_iter, keytype)
-char *pass;
-char *name;
-EVP_PKEY *pkey;
-X509 *cert;
-STACK *ca;
-int nid_key;
-int nid_cert;
-int iter;
-int mac_iter;
-int keytype;
+#include "cryptlib.h"
+#include <openssl/pkcs12.h>
+
+PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert,
+            STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter,
+            int keytype)
 {
        PKCS12 *p12;
        STACK *bags, *safes;
 {
        PKCS12 *p12;
        STACK *bags, *safes;
@@ -84,12 +72,12 @@ int keytype;
        X509 *tcert;
        int i;
        unsigned char keyid[EVP_MAX_MD_SIZE];
        X509 *tcert;
        int i;
        unsigned char keyid[EVP_MAX_MD_SIZE];
-       int keyidlen;
+       unsigned int keyidlen;
 
        /* Set defaults */
        if(!nid_cert) nid_cert = NID_pbe_WithSHA1And40BitRC2_CBC;
        if(!nid_key) nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
 
        /* Set defaults */
        if(!nid_cert) nid_cert = NID_pbe_WithSHA1And40BitRC2_CBC;
        if(!nid_key) nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
-       if(!iter) iter = 1000;
+       if(!iter) iter = PKCS12_DEFAULT_ITER;
        if(!mac_iter) mac_iter = 1;
 
        if(!pkey || !cert) {
        if(!mac_iter) mac_iter = 1;
 
        if(!pkey || !cert) {
@@ -115,8 +103,8 @@ int keytype;
        
        /* Add all other certificates */
        if(ca) {
        
        /* Add all other certificates */
        if(ca) {
-               for(i = 0; i < sk_num(ca); i++) {
-                       tcert = (X509 *)sk_value(ca, i);
+               for(i = 0; i < sk_X509_num(ca); i++) {
+                       tcert = sk_X509_value(ca, i);
                        if(!(bag = M_PKCS12_x5092certbag(tcert))) return NULL;
                        if(!sk_push(bags, (char *)bag)) {
                                PKCS12err(PKCS12_F_PKCS12_CREATE,ERR_R_MALLOC_FAILURE);
                        if(!(bag = M_PKCS12_x5092certbag(tcert))) return NULL;
                        if(!sk_push(bags, (char *)bag)) {
                                PKCS12err(PKCS12_F_PKCS12_CREATE,ERR_R_MALLOC_FAILURE);
@@ -127,8 +115,8 @@ int keytype;
 
        /* Turn certbags into encrypted authsafe */
        authsafe = PKCS12_pack_p7encdata (nid_cert, pass, -1, NULL, 0,
 
        /* Turn certbags into encrypted authsafe */
        authsafe = PKCS12_pack_p7encdata (nid_cert, pass, -1, NULL, 0,
-                                                                iter, bags);
-       sk_pop_free(bags, PKCS12_SAFEBAG_free);
+                                         iter, bags);
+       sk_pop_free(bags, (void(*)(void *)) PKCS12_SAFEBAG_free);
 
        if (!authsafe) return NULL;
 
 
        if (!authsafe) return NULL;
 
@@ -151,7 +139,7 @@ int keytype;
        }
        /* Turn it into unencrypted safe bag */
        if(!(authsafe = PKCS12_pack_p7data (bags))) return NULL;
        }
        /* Turn it into unencrypted safe bag */
        if(!(authsafe = PKCS12_pack_p7data (bags))) return NULL;
-       sk_pop_free(bags, PKCS12_SAFEBAG_free);
+       sk_pop_free(bags, (void(*)(void *)) PKCS12_SAFEBAG_free);
        if(!sk_push(safes, (char *)authsafe)) {
                PKCS12err(PKCS12_F_PKCS12_CREATE,ERR_R_MALLOC_FAILURE);
                return NULL;
        if(!sk_push(safes, (char *)authsafe)) {
                PKCS12err(PKCS12_F_PKCS12_CREATE,ERR_R_MALLOC_FAILURE);
                return NULL;
@@ -161,9 +149,10 @@ int keytype;
 
        if(!M_PKCS12_pack_authsafes (p12, safes)) return NULL;
 
 
        if(!M_PKCS12_pack_authsafes (p12, safes)) return NULL;
 
-       sk_pop_free(safes, PKCS7_free);
+       sk_pop_free(safes, (void(*)(void *)) PKCS7_free);
 
 
-       if(!PKCS12_set_mac (p12, pass, -1, NULL, 0, mac_iter, NULL)) return NULL;
+       if(!PKCS12_set_mac (p12, pass, -1, NULL, 0, mac_iter, NULL))
+           return NULL;
 
        return p12;
 
 
        return p12;