Commit 59bc6705 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add flags field to EC_KEY structure (backport from HEAD).

parent c0905628
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -701,11 +701,21 @@ typedef struct ec_key_st EC_KEY;
#define EC_PKEY_NO_PARAMETERS	0x001
#define EC_PKEY_NO_PUBKEY	0x002

/* some values for the flags field */
#define EC_FLAG_NON_FIPS_ALLOW	0x1
#define EC_FLAG_FIPS_CHECKED	0x2

/** Creates a new EC_KEY object.
 *  \return EC_KEY object or NULL if an error occurred.
 */
EC_KEY *EC_KEY_new(void);

int EC_KEY_get_flags(const EC_KEY *key);

void EC_KEY_set_flags(EC_KEY *key, int flags);

void EC_KEY_clear_flags(EC_KEY *key, int flags);

/** Creates a new EC_KEY object using a named curve as underlying
 *  EC_GROUP object.
 *  \param  nid  NID of the named curve.
+17 −0
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ EC_KEY *EC_KEY_new(void)
		}

	ret->version = 1;	
	ret->flags = 0;
	ret->group   = NULL;
	ret->pub_key = NULL;
	ret->priv_key= NULL;
@@ -197,6 +198,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
	dest->enc_flag  = src->enc_flag;
	dest->conv_form = src->conv_form;
	dest->version   = src->version;
	dest->flags = src->flags;

	return dest;
	}
@@ -537,3 +539,18 @@ int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
		return 0;
	return EC_GROUP_precompute_mult(key->group, ctx);
	}

int EC_KEY_get_flags(const EC_KEY *key)
	{
	return key->flags;
	}

void EC_KEY_set_flags(EC_KEY *key, int flags)
	{
	key->flags |= flags;
	}

void EC_KEY_clear_flags(EC_KEY *key, int flags)
	{
	key->flags &= ~flags;
	}
+1 −0
Original line number Diff line number Diff line
@@ -249,6 +249,7 @@ struct ec_key_st {
	point_conversion_form_t conv_form;

	int 	references;
	int	flags;

	EC_EXTRA_DATA *method_data;
} /* EC_KEY */;