1*b077aed3SPierre Pronchery=pod 2*b077aed3SPierre Pronchery 3*b077aed3SPierre Pronchery=head1 NAME 4*b077aed3SPierre Pronchery 5*b077aed3SPierre ProncheryOSSL_CRMF_MSG_get0_tmpl, 6*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_serialNumber, 7*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_subject, 8*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_issuer, 9*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_extensions, 10*b077aed3SPierre ProncheryOSSL_CRMF_CERTID_get0_serialNumber, 11*b077aed3SPierre ProncheryOSSL_CRMF_CERTID_get0_issuer, 12*b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_get1_encCert, 13*b077aed3SPierre ProncheryOSSL_CRMF_MSG_get_certReqId 14*b077aed3SPierre Pronchery- functions reading from CRMF CertReqMsg structures 15*b077aed3SPierre Pronchery 16*b077aed3SPierre Pronchery=head1 SYNOPSIS 17*b077aed3SPierre Pronchery 18*b077aed3SPierre Pronchery #include <openssl/crmf.h> 19*b077aed3SPierre Pronchery 20*b077aed3SPierre Pronchery OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); 21*b077aed3SPierre Pronchery const ASN1_INTEGER 22*b077aed3SPierre Pronchery *OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); 23*b077aed3SPierre Pronchery const X509_NAME 24*b077aed3SPierre Pronchery *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); 25*b077aed3SPierre Pronchery const X509_NAME 26*b077aed3SPierre Pronchery *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); 27*b077aed3SPierre Pronchery X509_EXTENSIONS 28*b077aed3SPierre Pronchery *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); 29*b077aed3SPierre Pronchery 30*b077aed3SPierre Pronchery const ASN1_INTEGER 31*b077aed3SPierre Pronchery *OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid); 32*b077aed3SPierre Pronchery const X509_NAME *OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid); 33*b077aed3SPierre Pronchery 34*b077aed3SPierre Pronchery X509 35*b077aed3SPierre Pronchery *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, 36*b077aed3SPierre Pronchery OSSL_LIB_CTX *libctx, const char *propq, 37*b077aed3SPierre Pronchery EVP_PKEY *pkey); 38*b077aed3SPierre Pronchery 39*b077aed3SPierre Pronchery int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm); 40*b077aed3SPierre Pronchery 41*b077aed3SPierre Pronchery 42*b077aed3SPierre Pronchery=head1 DESCRIPTION 43*b077aed3SPierre Pronchery 44*b077aed3SPierre ProncheryOSSL_CRMF_MSG_get0_tmpl() retrieves the certificate template of I<crm>. 45*b077aed3SPierre Pronchery 46*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_serialNumber() retrieves the serialNumber of the 47*b077aed3SPierre Proncherygiven certificate template I<tmpl>. 48*b077aed3SPierre Pronchery 49*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_subject() retrieves the subject name of the 50*b077aed3SPierre Proncherygiven certificate template I<tmpl>. 51*b077aed3SPierre Pronchery 52*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_issuer() retrieves the issuer name of the 53*b077aed3SPierre Proncherygiven certificate template I<tmpl>. 54*b077aed3SPierre Pronchery 55*b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_get0_extensions() retrieves the X.509 extensions 56*b077aed3SPierre Proncheryof the given certificate template I<tmpl>, or NULL if not present. 57*b077aed3SPierre Pronchery 58*b077aed3SPierre ProncheryOSSL_CRMF_CERTID_get0_serialNumber retrieves the serialNumber 59*b077aed3SPierre Proncheryof the given CertId I<cid>. 60*b077aed3SPierre Pronchery 61*b077aed3SPierre ProncheryOSSL_CRMF_CERTID_get0_issuer retrieves the issuer name 62*b077aed3SPierre Proncheryof the given CertId I<cid>, which must be of ASN.1 type GEN_DIRNAME. 63*b077aed3SPierre Pronchery 64*b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_get1_encCert() decrypts the certificate in the given 65*b077aed3SPierre ProncheryencryptedValue I<ecert>, using the private key I<pkey>, library context 66*b077aed3SPierre ProncheryI<libctx> and property query string I<propq> (see L<OSSL_LIB_CTX(3)>). 67*b077aed3SPierre ProncheryThis is needed for the indirect POPO method as in RFC 4210 section 5.2.8.2. 68*b077aed3SPierre ProncheryThe function returns the decrypted certificate as a copy, leaving its ownership 69*b077aed3SPierre Proncherywith the caller, who is responsible for freeing it. 70*b077aed3SPierre Pronchery 71*b077aed3SPierre ProncheryOSSL_CRMF_MSG_get_certReqId() retrieves the certReqId of I<crm>. 72*b077aed3SPierre Pronchery 73*b077aed3SPierre Pronchery 74*b077aed3SPierre Pronchery=head1 RETURN VALUES 75*b077aed3SPierre Pronchery 76*b077aed3SPierre ProncheryOSSL_CRMF_MSG_get_certReqId() returns the certificate request ID as a 77*b077aed3SPierre Proncherynonnegative integer or -1 on error. 78*b077aed3SPierre Pronchery 79*b077aed3SPierre ProncheryAll other functions return a pointer with the intended result or NULL on error. 80*b077aed3SPierre Pronchery 81*b077aed3SPierre Pronchery=head1 SEE ALSO 82*b077aed3SPierre Pronchery 83*b077aed3SPierre ProncheryRFC 4211 84*b077aed3SPierre Pronchery 85*b077aed3SPierre Pronchery=head1 HISTORY 86*b077aed3SPierre Pronchery 87*b077aed3SPierre ProncheryThe OpenSSL CRMF support was added in OpenSSL 3.0. 88*b077aed3SPierre Pronchery 89*b077aed3SPierre Pronchery=head1 COPYRIGHT 90*b077aed3SPierre Pronchery 91*b077aed3SPierre ProncheryCopyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. 92*b077aed3SPierre Pronchery 93*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 94*b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 95*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 96*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 97*b077aed3SPierre Pronchery 98*b077aed3SPierre Pronchery=cut 99