6 n__x509_8h
gullradriel edited this page 2026-10-09 00:55:18 +02:00

include/nilorea/n_x509.h

X.509 helpers: self-signed CA generation and per-host leaf minting. More...

Detailed Description

X.509 helpers: self-signed CA generation and per-host leaf minting.

Author: Castagnier Mickael

Version: 1.0

Source code

/*
 * Nilorea Library
 * Copyright (C) 2005-2026 Castagnier Mickael
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * SPDX-License-Identifier: Apache-2.0
 */


#ifndef __NILOREA_X509_HEADER
#define __NILOREA_X509_HEADER

#ifdef __cplusplus
extern "C" {
#endif


#ifdef HAVE_OPENSSL

#include "nilorea/n_str.h"

int n_x509_keypair_pem(int bits, N_STR** key_pem);

int n_x509_generate_ca(const char* cn, int days, N_STR** ca_cert_pem, N_STR** ca_key_pem);

int n_x509_mint_host_cert(const char* host, const N_STR* ca_cert_pem, const N_STR* ca_key_pem, int days, N_STR** leaf_cert_pem, N_STR** leaf_key_pem);

#endif /* HAVE_OPENSSL */


#ifdef __cplusplus
}
#endif

#endif /* __NILOREA_X509_HEADER */