aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/openssl/crypto/pkcs12/p12_init.c
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2023-09-06 12:31:14 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2023-09-06 12:59:52 +0300
commit04a19cc6b675d2380241eaa4b6e584a07bbd4280 (patch)
tree072700370672dc35fc987c10419e5ab34f4ca7fd /contrib/libs/openssl/crypto/pkcs12/p12_init.c
parent3a349a1a0cd42df29e4c2b2c950a8bd1d14345e3 (diff)
downloadydb-04a19cc6b675d2380241eaa4b6e584a07bbd4280.tar.gz
Intermediate changes
Diffstat (limited to 'contrib/libs/openssl/crypto/pkcs12/p12_init.c')
-rw-r--r--contrib/libs/openssl/crypto/pkcs12/p12_init.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/contrib/libs/openssl/crypto/pkcs12/p12_init.c b/contrib/libs/openssl/crypto/pkcs12/p12_init.c
new file mode 100644
index 0000000000..7ecc29ec0c
--- /dev/null
+++ b/contrib/libs/openssl/crypto/pkcs12/p12_init.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include "internal/cryptlib.h"
+#include <openssl/pkcs12.h>
+#include "p12_local.h"
+
+/* Initialise a PKCS12 structure to take data */
+
+PKCS12 *PKCS12_init(int mode)
+{
+ PKCS12 *pkcs12;
+
+ if ((pkcs12 = PKCS12_new()) == NULL) {
+ PKCS12err(PKCS12_F_PKCS12_INIT, ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
+ if (!ASN1_INTEGER_set(pkcs12->version, 3))
+ goto err;
+ pkcs12->authsafes->type = OBJ_nid2obj(mode);
+ switch (mode) {
+ case NID_pkcs7_data:
+ if ((pkcs12->authsafes->d.data = ASN1_OCTET_STRING_new()) == NULL) {
+ 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:
+ PKCS12_free(pkcs12);
+ return NULL;
+}