diff options
Diffstat (limited to 'src/crypto/pem/pem_info.c')
-rw-r--r-- | src/crypto/pem/pem_info.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/crypto/pem/pem_info.c b/src/crypto/pem/pem_info.c index c097013..db8275b 100644 --- a/src/crypto/pem/pem_info.c +++ b/src/crypto/pem/pem_info.c @@ -69,6 +69,37 @@ #include <openssl/rsa.h> #include <openssl/x509.h> + +static X509_PKEY *X509_PKEY_new(void) { + return OPENSSL_zalloc(sizeof(X509_PKEY)); +} + +static void X509_PKEY_free(X509_PKEY *x) { + if (x == NULL) { + return; + } + + EVP_PKEY_free(x->dec_pkey); + OPENSSL_free(x); +} + +static X509_INFO *X509_INFO_new(void) { + return OPENSSL_zalloc(sizeof(X509_INFO)); +} + +void X509_INFO_free(X509_INFO *x) { + if (x == NULL) { + return; + } + + X509_free(x->x509); + X509_CRL_free(x->crl); + X509_PKEY_free(x->x_pkey); + OPENSSL_free(x->enc_data); + OPENSSL_free(x); +} + + STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u) { BIO *b = BIO_new_fp(fp, BIO_NOCLOSE); |