function initEncryption(provider, bigIp) {
        const PRIVATE_KEY_OUT_FILE = '/tmp/tempPrivateKey.pem';

        let passphrase;

        if (provider.hasFeature(CloudProvider.FEATURE_ENCRYPTION)) {
            logger.debug('Generating public/private keys for autoscaling.');
            return cryptoUtil.generateRandomBytes(PASSPHRASE_LENGTH, 'base64')
                .then((response) => {
                    passphrase = response;
                    return cryptoUtil.generateKeyPair(
                        PRIVATE_KEY_OUT_FILE,
                        { passphrase, keyLength: '3072' }
                    );
                })
                .then((publicKey) => {
                    return provider.putPublicKey(this.instanceId, publicKey);
                })
                .then(() => {
                    return bigIp.installPrivateKey(
                        PRIVATE_KEY_OUT_FILE,
                        AUTOSCALE_PRIVATE_KEY_FOLDER,
                        AUTOSCALE_PRIVATE_KEY,
                        { passphrase }
                    );
                })
                .then(() => {
                    return bigIp.save();
                })
                .catch((err) => {
                    logger.info('initEncryption error', err && err.message ? err.message : err);
                    return q.reject(err);
                });
        }
        return q();
    }
function initEncryption(provider, bigIp) {
        const PRIVATE_KEY_OUT_FILE = '/tmp/tempPrivateKey.pem';

        let passphrase;

        if (provider.hasFeature(CloudProvider.FEATURE_ENCRYPTION)) {
            logger.debug('Generating public/private keys for autoscaling.');
            return cryptoUtil.generateRandomBytes(PASSPHRASE_LENGTH, 'base64')
                .then((response) => {
                    passphrase = response;
                    return cryptoUtil.generateKeyPair(
                        PRIVATE_KEY_OUT_FILE,
                        { passphrase, keyLength: '3072' }
                    );
                })
                .then((publicKey) => {
                    return provider.putPublicKey(this.instanceId, publicKey);
                })
                .then(() => {
                    return bigIp.installPrivateKey(
                        PRIVATE_KEY_OUT_FILE,
                        AUTOSCALE_PRIVATE_KEY_FOLDER,
                        AUTOSCALE_PRIVATE_KEY,
                        { passphrase }
                    );
                })
                .then(() => {
                    return bigIp.save();
                })
                .catch((err) => {
                    logger.info('initEncryption error', err && err.message ? err.message : err);
                    return q.reject(err);
                });
        }
        return q();
    }
function initEncryption ( provider , bigIp ) { const PRIVATE_KEY_OUT_FILE = '/tmp/tempPrivateKey.pem' ; let passphrase ; if ( provider . hasFeature ( CloudProvider . FEATURE_ENCRYPTION ) ) { logger . debug ( 'Generating public/private keys for autoscaling.' ) ; return cryptoUtil . generateRandomBytes ( PASSPHRASE_LENGTH , 'base64' ) . then ( ( response ) => { passphrase = response ; return cryptoUtil . generateKeyPair ( PRIVATE_KEY_OUT_FILE , { passphrase , keyLength : '3072' } ) ; } ) . then ( ( publicKey ) => { return provider . putPublicKey ( this . instanceId , publicKey ) ; } ) . then ( ( ) => { return bigIp . installPrivateKey ( PRIVATE_KEY_OUT_FILE , AUTOSCALE_PRIVATE_KEY_FOLDER , AUTOSCALE_PRIVATE_KEY , { passphrase } ) ; } ) . then ( ( ) => { return bigIp . save ( ) ; } ) . catch ( ( err ) => { logger . info ( 'initEncryption error' , err && err . message ? err . message : err ) ; return q . reject ( err ) ; } ) ; } return q ( ) ; }
If the provider supports encryption, initializes and stores keys.

Called with this bound to the caller.
If the provider supports encryption initializes and stores keys .