5 // Created by Martin Baulig on 3/7/16.
6 // Copyright © 2016 Xamarin. All rights reserved.
12 mono_btls_key_free (EVP_PKEY *pkey)
18 mono_btls_key_up_ref (EVP_PKEY *pkey)
20 return EVP_PKEY_up_ref (pkey);
24 mono_btls_key_get_bits (EVP_PKEY *pkey)
26 return EVP_PKEY_bits (pkey);
30 mono_btls_key_is_rsa (EVP_PKEY *pkey)
32 return pkey->type == EVP_PKEY_RSA;
36 mono_btls_key_get_bytes (EVP_PKEY *pkey, uint8_t **buffer, int *size, int include_private_bits)
45 if (pkey->type != EVP_PKEY_RSA)
48 rsa = EVP_PKEY_get1_RSA (pkey);
52 if (include_private_bits)
53 ret = RSA_private_key_to_bytes (buffer, &len, rsa);
55 ret = RSA_public_key_to_bytes (buffer, &len, rsa);
65 mono_btls_key_test (EVP_PKEY *pkey)
68 unsigned char *p = NULL;
71 if (pkey->type != EVP_PKEY_RSA)
74 rsa = EVP_PKEY_get1_RSA (pkey);
78 ret = i2d_RSA_PUBKEY (rsa, &p);