1*de0e0e4dSAntonio Huete Jimenez /* $OpenBSD: pkcs12_local.h,v 1.2 2022/09/11 17:30:13 tb Exp $ */ 2*de0e0e4dSAntonio Huete Jimenez /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 3*de0e0e4dSAntonio Huete Jimenez * project 1999. 4*de0e0e4dSAntonio Huete Jimenez */ 5*de0e0e4dSAntonio Huete Jimenez /* ==================================================================== 6*de0e0e4dSAntonio Huete Jimenez * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 7*de0e0e4dSAntonio Huete Jimenez * 8*de0e0e4dSAntonio Huete Jimenez * Redistribution and use in source and binary forms, with or without 9*de0e0e4dSAntonio Huete Jimenez * modification, are permitted provided that the following conditions 10*de0e0e4dSAntonio Huete Jimenez * are met: 11*de0e0e4dSAntonio Huete Jimenez * 12*de0e0e4dSAntonio Huete Jimenez * 1. Redistributions of source code must retain the above copyright 13*de0e0e4dSAntonio Huete Jimenez * notice, this list of conditions and the following disclaimer. 14*de0e0e4dSAntonio Huete Jimenez * 15*de0e0e4dSAntonio Huete Jimenez * 2. Redistributions in binary form must reproduce the above copyright 16*de0e0e4dSAntonio Huete Jimenez * notice, this list of conditions and the following disclaimer in 17*de0e0e4dSAntonio Huete Jimenez * the documentation and/or other materials provided with the 18*de0e0e4dSAntonio Huete Jimenez * distribution. 19*de0e0e4dSAntonio Huete Jimenez * 20*de0e0e4dSAntonio Huete Jimenez * 3. All advertising materials mentioning features or use of this 21*de0e0e4dSAntonio Huete Jimenez * software must display the following acknowledgment: 22*de0e0e4dSAntonio Huete Jimenez * "This product includes software developed by the OpenSSL Project 23*de0e0e4dSAntonio Huete Jimenez * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 24*de0e0e4dSAntonio Huete Jimenez * 25*de0e0e4dSAntonio Huete Jimenez * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 26*de0e0e4dSAntonio Huete Jimenez * endorse or promote products derived from this software without 27*de0e0e4dSAntonio Huete Jimenez * prior written permission. For written permission, please contact 28*de0e0e4dSAntonio Huete Jimenez * licensing@OpenSSL.org. 29*de0e0e4dSAntonio Huete Jimenez * 30*de0e0e4dSAntonio Huete Jimenez * 5. Products derived from this software may not be called "OpenSSL" 31*de0e0e4dSAntonio Huete Jimenez * nor may "OpenSSL" appear in their names without prior written 32*de0e0e4dSAntonio Huete Jimenez * permission of the OpenSSL Project. 33*de0e0e4dSAntonio Huete Jimenez * 34*de0e0e4dSAntonio Huete Jimenez * 6. Redistributions of any form whatsoever must retain the following 35*de0e0e4dSAntonio Huete Jimenez * acknowledgment: 36*de0e0e4dSAntonio Huete Jimenez * "This product includes software developed by the OpenSSL Project 37*de0e0e4dSAntonio Huete Jimenez * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 38*de0e0e4dSAntonio Huete Jimenez * 39*de0e0e4dSAntonio Huete Jimenez * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 40*de0e0e4dSAntonio Huete Jimenez * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 41*de0e0e4dSAntonio Huete Jimenez * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 42*de0e0e4dSAntonio Huete Jimenez * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 43*de0e0e4dSAntonio Huete Jimenez * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 44*de0e0e4dSAntonio Huete Jimenez * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 45*de0e0e4dSAntonio Huete Jimenez * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 46*de0e0e4dSAntonio Huete Jimenez * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 47*de0e0e4dSAntonio Huete Jimenez * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 48*de0e0e4dSAntonio Huete Jimenez * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 49*de0e0e4dSAntonio Huete Jimenez * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 50*de0e0e4dSAntonio Huete Jimenez * OF THE POSSIBILITY OF SUCH DAMAGE. 51*de0e0e4dSAntonio Huete Jimenez * ==================================================================== 52*de0e0e4dSAntonio Huete Jimenez * 53*de0e0e4dSAntonio Huete Jimenez * This product includes cryptographic software written by Eric Young 54*de0e0e4dSAntonio Huete Jimenez * (eay@cryptsoft.com). This product includes software written by Tim 55*de0e0e4dSAntonio Huete Jimenez * Hudson (tjh@cryptsoft.com). 56*de0e0e4dSAntonio Huete Jimenez * 57*de0e0e4dSAntonio Huete Jimenez */ 58*de0e0e4dSAntonio Huete Jimenez 59*de0e0e4dSAntonio Huete Jimenez #ifndef HEADER_PKCS12_LOCAL_H 60*de0e0e4dSAntonio Huete Jimenez #define HEADER_PKCS12_LOCAL_H 61*de0e0e4dSAntonio Huete Jimenez 62*de0e0e4dSAntonio Huete Jimenez __BEGIN_HIDDEN_DECLS 63*de0e0e4dSAntonio Huete Jimenez 64*de0e0e4dSAntonio Huete Jimenez struct PKCS12_MAC_DATA_st { 65*de0e0e4dSAntonio Huete Jimenez X509_SIG *dinfo; 66*de0e0e4dSAntonio Huete Jimenez ASN1_OCTET_STRING *salt; 67*de0e0e4dSAntonio Huete Jimenez ASN1_INTEGER *iter; /* defaults to 1 */ 68*de0e0e4dSAntonio Huete Jimenez }; 69*de0e0e4dSAntonio Huete Jimenez 70*de0e0e4dSAntonio Huete Jimenez struct PKCS12_st { 71*de0e0e4dSAntonio Huete Jimenez ASN1_INTEGER *version; 72*de0e0e4dSAntonio Huete Jimenez PKCS12_MAC_DATA *mac; 73*de0e0e4dSAntonio Huete Jimenez PKCS7 *authsafes; 74*de0e0e4dSAntonio Huete Jimenez }; 75*de0e0e4dSAntonio Huete Jimenez 76*de0e0e4dSAntonio Huete Jimenez struct PKCS12_SAFEBAG_st { 77*de0e0e4dSAntonio Huete Jimenez ASN1_OBJECT *type; 78*de0e0e4dSAntonio Huete Jimenez union { 79*de0e0e4dSAntonio Huete Jimenez struct pkcs12_bag_st *bag; /* secret, crl and certbag */ 80*de0e0e4dSAntonio Huete Jimenez struct pkcs8_priv_key_info_st *keybag; /* keybag */ 81*de0e0e4dSAntonio Huete Jimenez X509_SIG *shkeybag; /* shrouded key bag */ 82*de0e0e4dSAntonio Huete Jimenez STACK_OF(PKCS12_SAFEBAG) *safes; 83*de0e0e4dSAntonio Huete Jimenez ASN1_TYPE *other; 84*de0e0e4dSAntonio Huete Jimenez } value; 85*de0e0e4dSAntonio Huete Jimenez STACK_OF(X509_ATTRIBUTE) *attrib; 86*de0e0e4dSAntonio Huete Jimenez }; 87*de0e0e4dSAntonio Huete Jimenez 88*de0e0e4dSAntonio Huete Jimenez struct pkcs12_bag_st { 89*de0e0e4dSAntonio Huete Jimenez ASN1_OBJECT *type; 90*de0e0e4dSAntonio Huete Jimenez union { 91*de0e0e4dSAntonio Huete Jimenez ASN1_OCTET_STRING *x509cert; 92*de0e0e4dSAntonio Huete Jimenez ASN1_OCTET_STRING *x509crl; 93*de0e0e4dSAntonio Huete Jimenez ASN1_OCTET_STRING *octet; 94*de0e0e4dSAntonio Huete Jimenez ASN1_IA5STRING *sdsicert; 95*de0e0e4dSAntonio Huete Jimenez ASN1_TYPE *other; /* Secret or other bag */ 96*de0e0e4dSAntonio Huete Jimenez } value; 97*de0e0e4dSAntonio Huete Jimenez }; 98*de0e0e4dSAntonio Huete Jimenez 99*de0e0e4dSAntonio Huete Jimenez __END_HIDDEN_DECLS 100*de0e0e4dSAntonio Huete Jimenez 101*de0e0e4dSAntonio Huete Jimenez #endif /* HEADER_PKCS12_LOCAL_H */ 102