Exemplo n.º 1
0
/*	
 *	Add ESP alg info _with_ logic (policy):
 */
static void alg_info_esp_add (struct alg_info *alg_info, int ealg_id, int ek_bits, int aalg_id, int ak_bits, int modp_id, bool permit_manconn)
{
	/*	Policy: default to 3DES */
	if (ealg_id==0)
	{
		ealg_id=ESP_3DES;
	}
	if (ealg_id>0) 
	{

	    if(aalg_id > 0 ||(permit_manconn && aalg_id == 0))
		{
			if (aalg_id == INT_MAX)
			{
				aalg_id = 0;
			}
			__alg_info_esp_add((struct alg_info_esp *)alg_info,ealg_id, ek_bits,aalg_id, ak_bits);
		}
	    else
		{
			/*	Policy: default to MD5 and SHA1 */
			__alg_info_esp_add((struct alg_info_esp *)alg_info, ealg_id, ek_bits, AUTH_ALGORITHM_HMAC_MD5, ak_bits);
			__alg_info_esp_add((struct alg_info_esp *)alg_info, ealg_id, ek_bits, AUTH_ALGORITHM_HMAC_SHA1, ak_bits);
		}
	}
}
Exemplo n.º 2
0
/*	
 *	Add AH alg info _with_ logic (policy):
 */
static void
alg_info_ah_add (struct alg_info *alg_info,
		  int ealg_id, int ek_bits,
		  int aalg_id, int ak_bits,
		  int modp_id, bool permit_manconn)
{
    if(aalg_id > 0 ||
       (permit_manconn && aalg_id == 0))
    {
	__alg_info_esp_add((struct alg_info_esp *)alg_info,
			   ealg_id, ek_bits,
			   aalg_id, ak_bits);
    }
    else
    {
	/*	Policy: default to MD5 and SHA1 */
	__alg_info_esp_add((struct alg_info_esp *)alg_info,
			   ealg_id, ek_bits,				\
			   AUTH_ALGORITHM_HMAC_MD5, ak_bits);
	__alg_info_esp_add((struct alg_info_esp *)alg_info,
			   ealg_id, ek_bits,				\
			   AUTH_ALGORITHM_HMAC_SHA1, ak_bits);
    }
}