added x509_create() synthesis function
This commit is contained in:
@@ -23,6 +23,8 @@
|
|||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
* for more details.
|
* for more details.
|
||||||
|
*
|
||||||
|
* RCSID $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <gmp.h>
|
#include <gmp.h>
|
||||||
@@ -1262,10 +1264,10 @@ static void destroy(private_x509_t *this)
|
|||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Described in header.
|
* Internal generic constructor
|
||||||
*/
|
*/
|
||||||
x509_t *x509_create_from_chunk(chunk_t chunk, u_int level)
|
static private_x509_t *x509_create_empty(void)
|
||||||
{
|
{
|
||||||
private_x509_t *this = malloc_thing(private_x509_t);
|
private_x509_t *this = malloc_thing(private_x509_t);
|
||||||
|
|
||||||
@@ -1315,6 +1317,30 @@ x509_t *x509_create_from_chunk(chunk_t chunk, u_int level)
|
|||||||
this->public.list = (void(*)(x509_t*, FILE *out, bool utc))list;
|
this->public.list = (void(*)(x509_t*, FILE *out, bool utc))list;
|
||||||
this->public.destroy = (void (*) (x509_t*))destroy;
|
this->public.destroy = (void (*) (x509_t*))destroy;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Described in header.
|
||||||
|
*/
|
||||||
|
x509_t *x509_create_(chunk_t serialNumber, identification_t *issuer, identification_t *subject)
|
||||||
|
{
|
||||||
|
private_x509_t *this = x509_create_empty();
|
||||||
|
|
||||||
|
this->serialNumber = serialNumber;
|
||||||
|
this->issuer = issuer->clone(issuer);
|
||||||
|
this->subject = subject->clone(subject);
|
||||||
|
|
||||||
|
return &this->public;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Described in header.
|
||||||
|
*/
|
||||||
|
x509_t *x509_create_from_chunk(chunk_t chunk, u_int level)
|
||||||
|
{
|
||||||
|
private_x509_t *this = x509_create_empty();
|
||||||
|
|
||||||
if (!parse_certificate(chunk, level, this))
|
if (!parse_certificate(chunk, level, this))
|
||||||
{
|
{
|
||||||
destroy(this);
|
destroy(this);
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
* for more details.
|
* for more details.
|
||||||
|
*
|
||||||
|
* RCSID $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef X509_H_
|
#ifndef X509_H_
|
||||||
@@ -299,17 +301,34 @@ struct x509_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read a x509 certificate from a DER encoded blob.
|
* @brief Create a X.509 certificate from its components
|
||||||
|
*
|
||||||
|
* @param serialNumber chunk containing the serialNumber
|
||||||
|
* @param issuer issuer distinguished name
|
||||||
|
* @param notBefore start date of validity
|
||||||
|
* @param notAfter end date of validity
|
||||||
|
* @param subject subject distinguished name
|
||||||
|
*
|
||||||
|
* @return created x509_t certificate, or NULL if invalid.
|
||||||
|
*
|
||||||
|
* @ingroup crypto
|
||||||
|
*/
|
||||||
|
x509_t *x509_create(chunk_t serialNumber, identification_t *issuer,
|
||||||
|
time_t notBefore, time_t notAfter,
|
||||||
|
identification_t *subject);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read a X.509 certificate from a DER encoded blob.
|
||||||
*
|
*
|
||||||
* @param chunk chunk containing DER encoded data
|
* @param chunk chunk containing DER encoded data
|
||||||
* @return created x509_t certificate, or NULL if invlid.
|
* @return created x509_t certificate, or NULL if invalid.
|
||||||
*
|
*
|
||||||
* @ingroup crypto
|
* @ingroup crypto
|
||||||
*/
|
*/
|
||||||
x509_t *x509_create_from_chunk(chunk_t chunk, u_int level);
|
x509_t *x509_create_from_chunk(chunk_t chunk, u_int level);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read a x509 certificate from a DER encoded file.
|
* @brief Read a X.509 certificate from a DER encoded file.
|
||||||
*
|
*
|
||||||
* @param filename file containing DER encoded data
|
* @param filename file containing DER encoded data
|
||||||
* @param label label describing kind of certificate
|
* @param label label describing kind of certificate
|
||||||
|
|||||||
Reference in New Issue
Block a user