nts: split creating server and client credentials

This commit is contained in:
Miroslav Lichvar
2021-02-11 10:52:06 +01:00
parent a598983f9b
commit 0e4995e10b
5 changed files with 30 additions and 9 deletions

View File

@@ -641,8 +641,8 @@ deinit_gnutls(void)
/* ================================================== */
void *
NKSN_CreateCertCredentials(char *cert, char *key, char *trusted_certs)
static void *
create_credentials(const char *cert, const char *key, const char *trusted_certs)
{
gnutls_certificate_credentials_t credentials = NULL;
int r;
@@ -654,11 +654,15 @@ NKSN_CreateCertCredentials(char *cert, char *key, char *trusted_certs)
goto error;
if (cert && key) {
assert(!trusted_certs);
r = gnutls_certificate_set_x509_key_file(credentials, cert, key,
GNUTLS_X509_FMT_PEM);
if (r < 0)
goto error;
} else {
assert(!cert && !key);
if (!CNF_GetNoSystemCert()) {
r = gnutls_certificate_set_x509_system_trust(credentials);
if (r < 0)
@@ -687,6 +691,22 @@ error:
/* ================================================== */
void *
NKSN_CreateServerCertCredentials(const char *cert, const char *key)
{
return create_credentials(cert, key, NULL);
}
/* ================================================== */
void *
NKSN_CreateClientCertCredentials(const char *trusted_certs)
{
return create_credentials(NULL, NULL, trusted_certs);
}
/* ================================================== */
void
NKSN_DestroyCertCredentials(void *credentials)
{