xref: /freebsd-src/crypto/openssl/doc/internal/man3/ossl_cmp_msg_create.pod (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1*b077aed3SPierre Pronchery=pod
2*b077aed3SPierre Pronchery
3*b077aed3SPierre Pronchery=head1 NAME
4*b077aed3SPierre Pronchery
5*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_IR,
6*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_IP,
7*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CR,
8*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CP,
9*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_P10CR,
10*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_POPDECC,
11*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_POPDECR,
12*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_KUR,
13*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_KUP,
14*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_KRR,
15*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_KRP,
16*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_RR,
17*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_RP,
18*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CCR,
19*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CCP,
20*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CKUANN,
21*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CANN,
22*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_RANN,
23*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CRLANN,
24*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_PKICONF,
25*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_NESTED,
26*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_GENM,
27*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_GENP,
28*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_ERROR,
29*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_CERTCONF,
30*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_POLLREQ,
31*b077aed3SPierre ProncheryOSSL_CMP_PKIBODY_POLLREP,
32*b077aed3SPierre Proncheryossl_cmp_bodytype_to_string,
33*b077aed3SPierre Proncheryossl_cmp_msg_get_bodytype,
34*b077aed3SPierre Proncheryossl_cmp_msg_set_bodytype,
35*b077aed3SPierre Proncheryossl_cmp_msg_create,
36*b077aed3SPierre Proncheryossl_cmp_msg_gen_ITAV_push0,
37*b077aed3SPierre Proncheryossl_cmp_msg_gen_ITAVs_push1
38*b077aed3SPierre Pronchery- functions handling CMP messages
39*b077aed3SPierre Pronchery
40*b077aed3SPierre Pronchery=head1 SYNOPSIS
41*b077aed3SPierre Pronchery
42*b077aed3SPierre Pronchery #include "cmp_local.h"
43*b077aed3SPierre Pronchery
44*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_IR        0
45*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_IP        1
46*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CR        2
47*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CP        3
48*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_P10CR     4
49*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_POPDECC   5
50*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_POPDECR   6
51*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_KUR       7
52*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_KUP       8
53*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_KRR       9
54*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_KRP      10
55*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_RR       11
56*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_RP       12
57*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CCR      13
58*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CCP      14
59*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CKUANN   15
60*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CANN     16
61*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_RANN     17
62*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CRLANN   18
63*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_PKICONF  19
64*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_NESTED   20
65*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_GENM     21
66*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_GENP     22
67*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_ERROR    23
68*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_CERTCONF 24
69*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_POLLREQ  25
70*b077aed3SPierre Pronchery #define OSSL_CMP_PKIBODY_POLLREP  26
71*b077aed3SPierre Pronchery
72*b077aed3SPierre Pronchery  const char *ossl_cmp_bodytype_to_string(int type);
73*b077aed3SPierre Pronchery  int ossl_cmp_msg_get_bodytype(const OSSL_CMP_MSG *msg);
74*b077aed3SPierre Pronchery  int ossl_cmp_msg_set_bodytype( OSSL_CMP_MSG *msg, int type);
75*b077aed3SPierre Pronchery  OSSL_CMP_MSG *ossl_cmp_msg_create(OSSL_CMP_CTX *ctx, int bodytype);
76*b077aed3SPierre Pronchery  int ossl_cmp_msg_gen_ITAV_push0(OSSL_CMP_MSG *msg, OSSL_CMP_ITAV *itav);
77*b077aed3SPierre Pronchery  int ossl_cmp_msg_gen_ITAVs_push1(OSSL_CMP_MSG *msg,
78*b077aed3SPierre Pronchery                                    STACK_OF(OSSL_CMP_ITAV) *itavs);
79*b077aed3SPierre Pronchery
80*b077aed3SPierre Pronchery=head1 DESCRIPTION
81*b077aed3SPierre Pronchery
82*b077aed3SPierre Proncheryossl_cmp_bodytype_to_string() returns the name of the given body type as string,
83*b077aed3SPierre Proncheryor "illegal body type" on error.
84*b077aed3SPierre Pronchery
85*b077aed3SPierre Proncheryossl_cmp_msg_get_bodytype() returns the body type of the given PKIMessage,
86*b077aed3SPierre Proncheryor -1 on error.
87*b077aed3SPierre Pronchery
88*b077aed3SPierre Proncheryossl_cmp_msg_set_bodytype() sets the type of the message contained in
89*b077aed3SPierre Proncherythe PKIMessage body field.
90*b077aed3SPierre ProncheryReturns 1 on success, 0 on error.
91*b077aed3SPierre Pronchery
92*b077aed3SPierre Proncheryossl_cmp_msg_create() creates and initializes an B<OSSL_CMP_MSG> structure,
93*b077aed3SPierre Proncheryusing fields of B<ctx> for the header and B<bodytype> for the body.
94*b077aed3SPierre ProncheryIf the current B<transactionID> field in I<ctx> indicates that there is no
95*b077aed3SPierre Proncherycurrent transaction, it creates and stores a random one with 128 bits length.
96*b077aed3SPierre ProncheryThus, the I<ctx> may be modified by this and related ossl_cmp_*_new() functions.
97*b077aed3SPierre ProncheryReturns pointer to created B<OSSL_CMP_MSG> on success, NULL on error.
98*b077aed3SPierre Pronchery
99*b077aed3SPierre Proncheryossl_cmp_msg_gen_ITAV_push0() pushes the B<itav> to the body of the
100*b077aed3SPierre ProncheryPKIMessage B<msg> of GenMsg or GenRep type. Consumes the B<itavs> pointer.
101*b077aed3SPierre ProncheryReturns 1 on success, 0 on error.
102*b077aed3SPierre Pronchery
103*b077aed3SPierre Proncheryossl_cmp_msg_gen_ITAVs_push1() adds a copy of the B<itavs> stack to the body
104*b077aed3SPierre Proncheryof the PKIMessage B<msg> of GenMsg or GenRep type.
105*b077aed3SPierre ProncheryDoes not consume the B<itavs> pointer nor its elements.
106*b077aed3SPierre ProncheryReturns 1 on success, 0 on error.
107*b077aed3SPierre Pronchery
108*b077aed3SPierre Pronchery=head1 NOTES
109*b077aed3SPierre Pronchery
110*b077aed3SPierre ProncheryCMP is defined in RFC 4210 (and CRMF in RFC 4211).
111*b077aed3SPierre Pronchery
112*b077aed3SPierre Pronchery=head1 RETURN VALUES
113*b077aed3SPierre Pronchery
114*b077aed3SPierre ProncherySee the individual functions above.
115*b077aed3SPierre Pronchery
116*b077aed3SPierre Pronchery=head1 SEE ALSO
117*b077aed3SPierre Pronchery
118*b077aed3SPierre ProncheryL<ossl_cmp_hdr_init(3)>,
119*b077aed3SPierre ProncheryL<OSSL_CMP_CTX_new(3)>, L<OSSL_CMP_exec_certreq(3)>
120*b077aed3SPierre Pronchery
121*b077aed3SPierre Pronchery=head1 HISTORY
122*b077aed3SPierre Pronchery
123*b077aed3SPierre ProncheryThe OpenSSL CMP support was added in OpenSSL 3.0.
124*b077aed3SPierre Pronchery
125*b077aed3SPierre Pronchery=head1 COPYRIGHT
126*b077aed3SPierre Pronchery
127*b077aed3SPierre ProncheryCopyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
128*b077aed3SPierre Pronchery
129*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
130*b077aed3SPierre Proncherythis file except in compliance with the License.  You can obtain a copy
131*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at
132*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>.
133*b077aed3SPierre Pronchery
134*b077aed3SPierre Pronchery=cut
135