#include <btls-key.h>
+MONO_API EVP_PKEY *
+mono_btls_key_new ()
+{
+ return EVP_PKEY_new ();
+}
+
MONO_API void
mono_btls_key_free (EVP_PKEY *pkey)
{
return pkey->type == EVP_PKEY_RSA;
}
+MONO_API int
+mono_btls_key_assign_rsa_private_key (EVP_PKEY *pkey, uint8_t *der_data, int der_length)
+{
+ RSA *rsa;
+
+ rsa = RSA_private_key_from_bytes (der_data, der_length);
+ if (!rsa)
+ return 0;
+
+ return EVP_PKEY_assign_RSA (pkey, rsa);
+}
+
MONO_API int
mono_btls_key_get_bytes (EVP_PKEY *pkey, uint8_t **buffer, int *size, int include_private_bits)
{
else
ret = RSA_public_key_to_bytes (buffer, &len, rsa);
+ RSA_free (rsa);
+
if (ret != 1)
return 0;