aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/pem/pem_info.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/pem/pem_info.c')
-rw-r--r--src/crypto/pem/pem_info.c31
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);