do not copy the audio file header
[paraslash.git] / crypt.c
diff --git a/crypt.c b/crypt.c
index c1a2d4e5c8ccd67007ab96bf751ef9d35eaf465b..0d8b42410ea133355d396a2c689ddaf84b12c160 100644 (file)
--- a/crypt.c
+++ b/crypt.c
@@ -65,6 +65,19 @@ int get_rsa_key(char *key_file, RSA **rsa, int private)
        return RSA_size(*rsa);
 }
 
+/**
+ * free an RSA structure
+ *
+ * \param rsa pointer to the RSA struct to free
+ *
+ * This must be called for any key obtained by get_rsa_key().
+ */
+void rsa_free(RSA *rsa)
+{
+       if (rsa)
+               RSA_free(rsa);
+}
+
 /**
  * decrypt a buffer using an RSA key
  *
@@ -88,6 +101,7 @@ int para_decrypt_buffer(char *key_file, unsigned char *outbuf, unsigned char *in
        if (ret < 0)
                return ret;
        ret = RSA_private_decrypt(rsa_inlen, inbuf, outbuf, rsa, RSA_PKCS1_PADDING);
+       rsa_free(rsa);
        return (ret > 0)? ret : -E_DECRYPT;
 }