aboutsummaryrefslogtreecommitdiff
path: root/secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3
diff options
context:
space:
mode:
Diffstat (limited to 'secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3')
-rw-r--r--secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3212
1 files changed, 212 insertions, 0 deletions
diff --git a/secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3 b/secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3
new file mode 100644
index 000000000000..ebd4692992e4
--- /dev/null
+++ b/secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_get0_header.3
@@ -0,0 +1,212 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Required to disable full justification in groff 1.23.0.
+.if n .ds AD l
+.\" ========================================================================
+.\"
+.IX Title "OSSL_CMP_MSG_GET0_HEADER 3ossl"
+.TH OSSL_CMP_MSG_GET0_HEADER 3ossl 2026-04-07 3.5.6 OpenSSL
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+OSSL_CMP_MSG_get0_header,
+OSSL_CMP_MSG_get_bodytype,
+OSSL_CMP_MSG_get0_certreq_publickey,
+OSSL_CMP_MSG_update_transactionID,
+OSSL_CMP_MSG_update_recipNonce,
+OSSL_CMP_CTX_setup_CRM,
+OSSL_CMP_MSG_read,
+OSSL_CMP_MSG_write,
+d2i_OSSL_CMP_MSG_bio,
+i2d_OSSL_CMP_MSG_bio
+\&\- function(s) manipulating CMP messages
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 1
+\& #include <openssl/cmp.h>
+\&
+\& OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg);
+\& int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg);
+\& X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg);
+\& int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
+\& int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
+\& OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid);
+\& OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, const char *propq);
+\& int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg);
+\& OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg);
+\& int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg);
+.Ve
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+\&\fBOSSL_CMP_MSG_get0_header()\fR returns the header of the given CMP message.
+.PP
+\&\fBOSSL_CMP_MSG_get_bodytype()\fR returns the body type of the given CMP message.
+.PP
+\&\fBOSSL_CMP_MSG_get0_certreq_publickey()\fR expects that \fImsg\fR is a certificate request
+message and returns the public key in its certificate template if present.
+.PP
+\&\fBOSSL_CMP_MSG_update_transactionID()\fR updates the transactionID field
+in the header of the given message according to the CMP_CTX.
+If \fIctx\fR does not contain a transaction ID, a fresh one is created before.
+The message gets re\-protected (if protecting requests is required).
+.PP
+\&\fBOSSL_CMP_MSG_update_recipNonce()\fR updates the recipNonce field
+in the header of the given message according to the CMP_CTX.
+The message gets re\-protected (if protecting requests is required).
+.PP
+\&\fBOSSL_CMP_CTX_setup_CRM()\fR creates a CRMF certificate request message
+from various information provided in the CMP context argument \fIctx\fR
+for inclusion in a CMP request message based on details contained in \fIctx\fR.
+The \fIrid\fR argument defines the request identifier to use, which typically is 0.
+.PP
+The subject DN included in the certificate template is
+the first available value of these:
+.IP "any subject name in \fIctx\fR set via \fBOSSL_CMP_CTX_set1_subjectName\fR\|(3) \- if it is the NULL\-DN (i.e., any empty sequence of RDNs), no subject is included," 4
+.IX Item "any subject name in ctx set via OSSL_CMP_CTX_set1_subjectName - if it is the NULL-DN (i.e., any empty sequence of RDNs), no subject is included,"
+.PD 0
+.IP "the subject field of any PKCS#10 CSR set in \fIctx\fR via \fBOSSL_CMP_CTX_set1_p10CSR\fR\|(3)," 4
+.IX Item "the subject field of any PKCS#10 CSR set in ctx via OSSL_CMP_CTX_set1_p10CSR,"
+.IP "the subject field of any reference certificate given in \fIctx\fR (see \fBOSSL_CMP_CTX_set1_oldCert\fR\|(3)), but only if \fIfor_KUR\fR is nonzero or the \fIctx\fR does not include a Subject Alternative Name." 4
+.IX Item "the subject field of any reference certificate given in ctx (see OSSL_CMP_CTX_set1_oldCert), but only if for_KUR is nonzero or the ctx does not include a Subject Alternative Name."
+.PD
+.PP
+The public key included is the first available value of these:
+.IP "the public key derived from any key set via \fBOSSL_CMP_CTX_set0_newPkey\fR\|(3)," 4
+.IX Item "the public key derived from any key set via OSSL_CMP_CTX_set0_newPkey,"
+.PD 0
+.IP "the public key of any PKCS#10 CSR given in \fIctx\fR," 4
+.IX Item "the public key of any PKCS#10 CSR given in ctx,"
+.IP "the public key of any reference certificate given in \fIctx\fR (see \fBOSSL_CMP_CTX_set1_oldCert\fR\|(3))," 4
+.IX Item "the public key of any reference certificate given in ctx (see OSSL_CMP_CTX_set1_oldCert),"
+.IP "the public key derived from any client\*(Aqs private key set via \fBOSSL_CMP_CTX_set1_pkey\fR\|(3)." 4
+.IX Item "the public key derived from any client's private key set via OSSL_CMP_CTX_set1_pkey."
+.PD
+.PP
+The set of X.509 extensions to include is computed as follows.
+If a PKCS#10 CSR is present in \fIctx\fR, default extensions are taken from there,
+otherwise the empty set is taken as the initial value.
+If there is a reference certificate in \fIctx\fR and contains Subject Alternative
+Names (SANs) and \fBOSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT\fR is not set,
+these override any SANs from the PKCS#10 CSR.
+The extensions are further augmented or overridden by any extensions with the
+same OIDs included in the \fIctx\fR via \fBOSSL_CMP_CTX_set0_reqExtensions\fR\|(3).
+The SANs are further overridden by any SANs included in \fIctx\fR via
+\&\fBOSSL_CMP_CTX_push1_subjectAltName\fR\|(3).
+Finally, policies are overridden by any policies included in \fIctx\fR via
+\&\fBOSSL_CMP_CTX_push0_policy\fR\|(3).
+.PP
+\&\fBOSSL_CMP_CTX_setup_CRM()\fR also sets the sets the regToken control \fBoldCertID\fR
+for KUR messages using the issuer name and serial number of the reference
+certificate, if present.
+.PP
+\&\fBOSSL_CMP_MSG_read()\fR loads a DER\-encoded OSSL_CMP_MSG from \fIfile\fR.
+.PP
+\&\fBOSSL_CMP_MSG_write()\fR stores the given OSSL_CMP_MSG to \fIfile\fR in DER encoding.
+.PP
+\&\fBd2i_OSSL_CMP_MSG_bio()\fR parses an ASN.1\-encoded OSSL_CMP_MSG from the BIO \fIbio\fR.
+It assigns a pointer to the new structure to \fI*msg\fR if \fImsg\fR is not NULL.
+.PP
+\&\fBi2d_OSSL_CMP_MSG_bio()\fR writes the OSSL_CMP_MSG \fImsg\fR in ASN.1 encoding
+to BIO \fIbio\fR.
+.SH NOTES
+.IX Header "NOTES"
+CMP is defined in RFC 9810.
+.SH "RETURN VALUES"
+.IX Header "RETURN VALUES"
+\&\fBOSSL_CMP_MSG_get0_header()\fR returns the intended pointer value as described above
+or NULL if the respective entry does not exist and on error.
+.PP
+\&\fBOSSL_CMP_MSG_get_bodytype()\fR returns the body type or \-1 on error.
+.PP
+\&\fBOSSL_CMP_MSG_get0_certreq_publickey()\fR returns a public key or NULL on error.
+.PP
+\&\fBOSSL_CMP_CTX_setup_CRM()\fR returns a pointer to a \fBOSSL_CRMF_MSG\fR on success,
+NULL on error.
+.PP
+\&\fBd2i_OSSL_CMP_MSG_bio()\fR returns the parsed message or NULL on error.
+.PP
+\&\fBOSSL_CMP_MSG_read()\fR and \fBd2i_OSSL_CMP_MSG_bio()\fR
+return the parsed CMP message or NULL on error.
+.PP
+\&\fBOSSL_CMP_MSG_write()\fR returns the number of bytes successfully encoded or a
+negative value if an error occurs.
+.PP
+\&\fBi2d_OSSL_CMP_MSG_bio()\fR, \fBOSSL_CMP_MSG_update_transactionID()\fR,
+and \fBOSSL_CMP_MSG_update_recipNonce()\fR
+return 1 on success, 0 on error.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fBOSSL_CMP_CTX_set1_subjectName\fR\|(3), \fBOSSL_CMP_CTX_set1_p10CSR\fR\|(3),
+\&\fBOSSL_CMP_CTX_set1_oldCert\fR\|(3), \fBOSSL_CMP_CTX_set0_newPkey\fR\|(3),
+\&\fBOSSL_CMP_CTX_set1_pkey\fR\|(3), \fBOSSL_CMP_CTX_set0_reqExtensions\fR\|(3),
+\&\fBOSSL_CMP_CTX_push1_subjectAltName\fR\|(3), \fBOSSL_CMP_CTX_push0_policy\fR\|(3)
+.SH HISTORY
+.IX Header "HISTORY"
+The OpenSSL CMP support was added in OpenSSL 3.0.
+.PP
+\&\fBOSSL_CMP_MSG_update_recipNonce()\fR was added in OpenSSL 3.0.9.
+.PP
+\&\fBOSSL_CMP_MSG_get0_certreq_publickey()\fR was added in OpenSSL 3.3.
+.SH COPYRIGHT
+.IX Header "COPYRIGHT"
+Copyright 2007\-2024 The OpenSSL Project Authors. All Rights Reserved.
+.PP
+Licensed under the Apache License 2.0 (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>.