summaryrefslogtreecommitdiff
path: root/src/ssl_chainfile.c
blob: 9e353c2b31189d5df4de70d653c25eb72966b3ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** 
  @file ssl_certchainfile.c
  @author feh
  @brief Enables Certificate chain file presentation for sslserver
*/
#include "ucspissl.h"

int ssl_chainfile(SSL_CTX *ctx,const char *certchainfile,const char *keyfile,pem_password_cb *passwd_cb)
{
  if (!certchainfile) return 0;
  if (!keyfile) return 0;

  if (SSL_CTX_use_certificate_chain_file(ctx,certchainfile) <= 0)
    return -1;

  SSL_CTX_set_default_passwd_cb(ctx,passwd_cb);
  if (SSL_CTX_use_PrivateKey_file(ctx,keyfile,SSL_FILETYPE_PEM) != 1)
    return -2;

  if (SSL_CTX_check_private_key(ctx) != 1)
    return -3;

  return 0;
}