1*b077aed3SPierre Pronchery/*
2*b077aed3SPierre Pronchery * {- join("\n * ", @autowarntext) -}
3*b077aed3SPierre Pronchery *
4*b077aed3SPierre Pronchery * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
5*b077aed3SPierre Pronchery *
6*b077aed3SPierre Pronchery * Licensed under the Apache License 2.0 (the "License").  You may not use
7*b077aed3SPierre Pronchery * this file except in compliance with the License.  You can obtain a copy
8*b077aed3SPierre Pronchery * in the file LICENSE in the source distribution or at
9*b077aed3SPierre Pronchery * https://www.openssl.org/source/license.html
10*b077aed3SPierre Pronchery */
11*b077aed3SPierre Pronchery
12*b077aed3SPierre Pronchery{-
13*b077aed3SPierre Proncheryuse OpenSSL::stackhash qw(generate_stack_macros);
14*b077aed3SPierre Pronchery-}
15*b077aed3SPierre Pronchery
16*b077aed3SPierre Pronchery#ifndef OPENSSL_ESS_H
17*b077aed3SPierre Pronchery# define OPENSSL_ESS_H
18*b077aed3SPierre Pronchery# pragma once
19*b077aed3SPierre Pronchery
20*b077aed3SPierre Pronchery# include <openssl/opensslconf.h>
21*b077aed3SPierre Pronchery
22*b077aed3SPierre Pronchery# include <openssl/safestack.h>
23*b077aed3SPierre Pronchery# include <openssl/x509.h>
24*b077aed3SPierre Pronchery# include <openssl/esserr.h>
25*b077aed3SPierre Pronchery
26*b077aed3SPierre Pronchery# ifdef  __cplusplus
27*b077aed3SPierre Proncheryextern "C" {
28*b077aed3SPierre Pronchery# endif
29*b077aed3SPierre Pronchery
30*b077aed3SPierre Pronchery
31*b077aed3SPierre Proncherytypedef struct ESS_issuer_serial ESS_ISSUER_SERIAL;
32*b077aed3SPierre Proncherytypedef struct ESS_cert_id ESS_CERT_ID;
33*b077aed3SPierre Proncherytypedef struct ESS_signing_cert ESS_SIGNING_CERT;
34*b077aed3SPierre Pronchery
35*b077aed3SPierre Pronchery{-
36*b077aed3SPierre Pronchery    generate_stack_macros("ESS_CERT_ID");
37*b077aed3SPierre Pronchery-}
38*b077aed3SPierre Pronchery
39*b077aed3SPierre Pronchery
40*b077aed3SPierre Proncherytypedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2;
41*b077aed3SPierre Proncherytypedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2;
42*b077aed3SPierre Pronchery
43*b077aed3SPierre Pronchery{-
44*b077aed3SPierre Pronchery    generate_stack_macros("ESS_CERT_ID_V2");
45*b077aed3SPierre Pronchery-}
46*b077aed3SPierre Pronchery
47*b077aed3SPierre ProncheryDECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL)
48*b077aed3SPierre ProncheryDECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL)
49*b077aed3SPierre ProncheryDECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL)
50*b077aed3SPierre Pronchery
51*b077aed3SPierre ProncheryDECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID)
52*b077aed3SPierre ProncheryDECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID)
53*b077aed3SPierre ProncheryDECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID)
54*b077aed3SPierre Pronchery
55*b077aed3SPierre ProncheryDECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT)
56*b077aed3SPierre ProncheryDECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT)
57*b077aed3SPierre Pronchery
58*b077aed3SPierre ProncheryDECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2)
59*b077aed3SPierre ProncheryDECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2)
60*b077aed3SPierre ProncheryDECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2)
61*b077aed3SPierre Pronchery
62*b077aed3SPierre ProncheryDECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2)
63*b077aed3SPierre ProncheryDECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2)
64*b077aed3SPierre Pronchery
65*b077aed3SPierre ProncheryESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert,
66*b077aed3SPierre Pronchery                                                 const STACK_OF(X509) *certs,
67*b077aed3SPierre Pronchery                                                 int set_issuer_serial);
68*b077aed3SPierre ProncheryESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg,
69*b077aed3SPierre Pronchery                                                       const X509 *signcert,
70*b077aed3SPierre Pronchery                                                       const
71*b077aed3SPierre Pronchery                                                       STACK_OF(X509) *certs,
72*b077aed3SPierre Pronchery                                                       int set_issuer_serial);
73*b077aed3SPierre Proncheryint OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss,
74*b077aed3SPierre Pronchery                                 const ESS_SIGNING_CERT_V2 *ssv2,
75*b077aed3SPierre Pronchery                                 const STACK_OF(X509) *chain,
76*b077aed3SPierre Pronchery                                 int require_signing_cert);
77*b077aed3SPierre Pronchery
78*b077aed3SPierre Pronchery# ifdef  __cplusplus
79*b077aed3SPierre Pronchery}
80*b077aed3SPierre Pronchery# endif
81*b077aed3SPierre Pronchery#endif
82