engines/e_aep.c:614: error: INTEGER_OVERFLOW_L2
  ([0, `m->top`] - 1):unsigned64 by call to `BN_mod_exp`.
Showing all 15 steps of the trace


engines/e_aep.c:600:1: Parameter `m->top`
598.   	}
599.   
600. > static int aep_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
601.   	const BIGNUM *m, BN_CTX *ctx)
602.   	{

engines/e_aep.c:608:10: Call
606.   	AEP_RV rv;
607.   	
608.   	r_len = BN_num_bits(m);
                ^
609.   
610.   	/* Perform in software if modulus is too large for hardware. */

crypto/bn/bn_lib.c:248:1: Parameter `a->top`
  246.   	}
  247.   
  248. > int BN_num_bits(const BIGNUM *a)
  249.   	{
  250.   	int i = a->top - 1;

engines/e_aep.c:614:10: Call
612.   	if (r_len > max_key_len){
613.   		AEPHKerr(AEPHK_F_AEP_MOD_EXP, AEPHK_R_SIZE_TOO_LARGE_OR_TOO_SMALL);
614.   		return BN_mod_exp(r, a, p, m, ctx);
                ^
615.   	} 
616.   

crypto/bn/bn_exp.c:163:1: Parameter `m->top`
  161.   
  162.   
  163. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  164.   	       BN_CTX *ctx)
  165.   	{

crypto/bn/bn_exp.c:228:9: Call
  226.   #endif
  227.   #ifdef RECP_MUL_MOD
  228.   		{ ret=BN_mod_exp_recp(r,a,p,m,ctx); }
                 ^
  229.   #else
  230.   		{ ret=BN_mod_exp_simple(r,a,p,m,ctx); }

crypto/bn/bn_exp.c:238:1: Parameter `m->top`
    236.   
    237.   
    238. > int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
    239.   		    const BIGNUM *m, BN_CTX *ctx)
    240.   	{

crypto/bn/bn_exp.c:278:7: Call
    276.   	else
    277.   		{
    278.   		if (BN_RECP_CTX_set(&recp,m,ctx) <= 0) goto err;
                 ^
    279.   		}
    280.   

crypto/bn/bn_recp.c:94:1: Parameter `d->top`
      92.   	}
      93.   
      94. > int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
      95.   	{
      96.   	if (!BN_copy(&(recp->N),d)) return 0;

crypto/bn/bn_recp.c:96:7: Call
      94.   int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
      95.   	{
      96.   	if (!BN_copy(&(recp->N),d)) return 0;
                  ^
      97.   	BN_zero(&(recp->Nr));
      98.   	recp->num_bits=BN_num_bits(d);

crypto/bn/bn_lib.c:497:1: Parameter `a->dmax`
        495.   	}
        496.   
        497. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
        498.   	{
        499.   	int i;

crypto/bn/bn_recp.c:98:17: Call
      96.   	if (!BN_copy(&(recp->N),d)) return 0;
      97.   	BN_zero(&(recp->Nr));
      98.   	recp->num_bits=BN_num_bits(d);
                             ^
      99.   	recp->shift=0;
      100.   	return(1);

crypto/bn/bn_lib.c:248:1: <LHS trace>
246.   	}
247.   
248. > int BN_num_bits(const BIGNUM *a)
249.   	{
250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:248:1: Parameter `a->top`
        246.   	}
        247.   
        248. > int BN_num_bits(const BIGNUM *a)
        249.   	{
        250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:250:2: Binary operation: ([0, m->top] - 1):unsigned64 by call to `BN_mod_exp` 
        248.   int BN_num_bits(const BIGNUM *a)
        249.   	{
        250.   	int i = a->top - 1;
                ^
        251.   	bn_check_top(a);
        252.   
