ENGINE_register_all_complete() will register all implementations of all
algorithms present in all loaded ENGINEs. The result is that if any of those ENGINEs successfully initialises, and the ENGINE_TABLE_FLAG_NOINIT flag isn't set, then they will always be used (and cached as defaults) in preference to software implementations. Ie. accidental auto-detection of acceleration hardware :-) This change stops all implementations being automatically registered in "openssl" sub-commands, so that the "setup_engine()" handler in apps.c controls which ENGINEs are registered for use. A special case has been added that will revert to this "auto-detect" logic, ie. if the "-engine" switch is used as; -engine auto
parent
cb7fd76f
Please register or sign in to comment