power(exponent){
        if(typeof exponent === 'string')
            exponent = bigInteger(exponent);
        return this.g.modPow(exponent, this.p);
    }
/**
     * calculate: generator^exponent mod modulus. It  works independent of ElGamal, it means you
     * can use it even if ElGamal fails security conditions.
     * This method is not part of elgamal but part of basic group functionality! it's provided
     * here to reduce the complexity of dependencies.
     * @param {bigInteger.BigInteger|string} exponent - The exponent to calculate its modular exponentiation 
     * regarding generator
     * @returns {bigInteger.BigInteger} The resulted modular exponentiation
     */
generator^exponent mod modulus. It  works independent of ElGamal, it means you
can use it even if ElGamal fails security conditions.
This method is not part of elgamal but part of basic group functionality. it's provided
here to reduce the complexity of dependencies.
@param {bigInteger.BigInteger|string} exponent - The exponent to calculate its modular exponentiation
regarding generator
@returns {bigInteger.BigInteger} The resulted modular exponentiation
generator^exponent mod modulus . It works independent of ElGamal it means you can use it even if ElGamal fails security conditions . This method is not part of elgamal but part of basic group functionality . it ' s provided here to reduce the complexity of dependencies . @param { bigInteger . BigInteger|string } exponent - The exponent to calculate its modular exponentiation regarding generator @returns { bigInteger . BigInteger } The resulted modular exponentiation
power(exponent){
        if(typeof exponent === 'string')
            exponent = bigInteger(exponent);
        return this.g.modPow(exponent, this.p);
    }
power ( exponent ) { if ( typeof exponent === 'string' ) exponent = bigInteger ( exponent ) ; return this . g . modPow ( exponent , this . p ) ; }
calculate: generator^exponent mod modulus.
calculate : generator^exponent mod modulus .