Add a dispose API function
diff --git a/include/picotls/openssl.h b/include/picotls/openssl.h
index 1f27a27..2cc8c96 100644
--- a/include/picotls/openssl.h
+++ b/include/picotls/openssl.h
@@ -119,6 +119,7 @@
X509_STORE *ptls_openssl_create_default_certificate_store(void);
int ptls_openssl_raw_pubkey_init_verify_certificate(ptls_openssl_raw_pubkey_verify_certificate_t *self, EVP_PKEY *pubkey);
+void ptls_openssl_raw_pubkey_dispose_verify_certificate(ptls_openssl_raw_pubkey_verify_certificate_t *self);
int ptls_openssl_encrypt_ticket(ptls_buffer_t *dst, ptls_iovec_t src,
int (*cb)(unsigned char *, unsigned char *, EVP_CIPHER_CTX *, HMAC_CTX *, int));
diff --git a/lib/openssl.c b/lib/openssl.c
index 0bc52cb..00e54b3 100644
--- a/lib/openssl.c
+++ b/lib/openssl.c
@@ -1324,6 +1324,10 @@
*self = (ptls_openssl_raw_pubkey_verify_certificate_t){{verify_raw_cert}, expected_pubkey};
return 0;
}
+void ptls_openssl_raw_pubkey_dispose_verify_certificate(ptls_openssl_raw_pubkey_verify_certificate_t *self)
+{
+ EVP_PKEY_free(self->expected_pubkey);
+}
#define TICKET_LABEL_SIZE 16
#define TICKET_IV_SIZE EVP_MAX_IV_LENGTH