diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_add.c')
| -rw-r--r-- | src/lib/libcrypto/pkcs12/p12_add.c | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_add.c b/src/lib/libcrypto/pkcs12/p12_add.c index d9de395c5b..a7b8c1eaf8 100644 --- a/src/lib/libcrypto/pkcs12/p12_add.c +++ b/src/lib/libcrypto/pkcs12/p12_add.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: p12_add.c,v 1.19 2022/08/20 09:16:18 tb Exp $ */ | 1 | /* $OpenBSD: p12_add.c,v 1.20 2022/09/11 17:30:13 tb Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -91,58 +91,6 @@ PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2) | |||
| 91 | return safebag; | 91 | return safebag; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | #if !defined(LIBRESSL_NEXT_API) | ||
| 95 | #undef PKCS12_MAKE_KEYBAG | ||
| 96 | #undef PKCS12_MAKE_SHKEYBAG | ||
| 97 | /* Turn PKCS8 object into a keybag */ | ||
| 98 | |||
| 99 | PKCS12_SAFEBAG * | ||
| 100 | PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8) | ||
| 101 | { | ||
| 102 | PKCS12_SAFEBAG *bag; | ||
| 103 | |||
| 104 | if (!(bag = PKCS12_SAFEBAG_new())) { | ||
| 105 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
| 106 | return NULL; | ||
| 107 | } | ||
| 108 | bag->type = OBJ_nid2obj(NID_keyBag); | ||
| 109 | bag->value.keybag = p8; | ||
| 110 | return bag; | ||
| 111 | } | ||
| 112 | |||
| 113 | /* Turn PKCS8 object into a shrouded keybag */ | ||
| 114 | |||
| 115 | PKCS12_SAFEBAG * | ||
| 116 | PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, int passlen, | ||
| 117 | unsigned char *salt, int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8) | ||
| 118 | { | ||
| 119 | PKCS12_SAFEBAG *bag; | ||
| 120 | const EVP_CIPHER *pbe_ciph; | ||
| 121 | |||
| 122 | /* Set up the safe bag */ | ||
| 123 | if (!(bag = PKCS12_SAFEBAG_new())) { | ||
| 124 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
| 125 | return NULL; | ||
| 126 | } | ||
| 127 | |||
| 128 | bag->type = OBJ_nid2obj(NID_pkcs8ShroudedKeyBag); | ||
| 129 | |||
| 130 | pbe_ciph = EVP_get_cipherbynid(pbe_nid); | ||
| 131 | |||
| 132 | if (pbe_ciph) | ||
| 133 | pbe_nid = -1; | ||
| 134 | |||
| 135 | if (!(bag->value.shkeybag = PKCS8_encrypt(pbe_nid, pbe_ciph, pass, | ||
| 136 | passlen, salt, saltlen, iter, p8))) { | ||
| 137 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
| 138 | PKCS12_SAFEBAG_free(bag); | ||
| 139 | return NULL; | ||
| 140 | } | ||
| 141 | |||
| 142 | return bag; | ||
| 143 | } | ||
| 144 | #endif | ||
| 145 | |||
| 146 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ | 94 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ |
| 147 | PKCS7 * | 95 | PKCS7 * |
| 148 | PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk) | 96 | PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk) |
