Import evp_test.c from BoringSSL. Unfortunately we already have a file
[openssl.git] / crypto / pkcs12 / p12_init.c
index 055629131a6cc6a4ad0c15b8b03e7147aa6e38fe..0322df944a4ba791223c41a76efcbe9dc03305e3 100644 (file)
@@ -1,6 +1,7 @@
 /* p12_init.c */
-/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
- * project 1999.
+/*
+ * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
+ * 1999.
  */
 /* ====================================================================
  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
@@ -10,7 +11,7 @@
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
+ *    notice, this list of conditions and the following disclaimer.
  *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
  */
 
 #include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <err.h>
-#include <rand.h>
-#include "pkcs12.h"
+#include "cryptlib.h"
+#include <openssl/pkcs12.h>
 
 /* Initialise a PKCS12 structure to take data */
 
-PKCS12 *PKCS12_init (mode)
-int mode;
+PKCS12 *PKCS12_init(int mode)
 {
-       PKCS12 *pkcs12;
-       if (!(pkcs12 = PKCS12_new())) {
-               PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       if (!(pkcs12->version = ASN1_INTEGER_new ())) {
-               PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       ASN1_INTEGER_set (pkcs12->version, 3);
-       if (!(pkcs12->authsafes = PKCS7_new())) {
-               PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       M_ASN1_OBJECT_set(pkcs12->authsafes->type, mode);
-       switch (mode) {
-               case NID_pkcs7_data:
-                       if (!(pkcs12->authsafes->d.data =
-                                ASN1_OCTET_STRING_new())) {
-                       PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
-                       return NULL;
-               }
-               break;
-               default:
-                       PKCS12err(PKCS12_F_PKCS12_INIT,PKCS12_R_UNSUPPORTED_PKCS12_MODE);
-                       PKCS12_free(pkcs12);
-                       return NULL;
-               break;
-       }
-               
-       return pkcs12;
+    PKCS12 *pkcs12;
+    if (!(pkcs12 = PKCS12_new())) {
+        PKCS12err(PKCS12_F_PKCS12_INIT, ERR_R_MALLOC_FAILURE);
+        return NULL;
+    }
+    ASN1_INTEGER_set(pkcs12->version, 3);
+    pkcs12->authsafes->type = OBJ_nid2obj(mode);
+    switch (mode) {
+    case NID_pkcs7_data:
+        if (!(pkcs12->authsafes->d.data = M_ASN1_OCTET_STRING_new())) {
+            PKCS12err(PKCS12_F_PKCS12_INIT, ERR_R_MALLOC_FAILURE);
+            goto err;
+        }
+        break;
+    default:
+        PKCS12err(PKCS12_F_PKCS12_INIT, PKCS12_R_UNSUPPORTED_PKCS12_MODE);
+        goto err;
+    }
+
+    return pkcs12;
+ err:
+    if (pkcs12 != NULL)
+        PKCS12_free(pkcs12);
+    return NULL;
 }