private function _setPublicKeyState(ValidatorState $state, Certificate $cert): ValidatorState
    {
        $pk_info = $cert->tbsCertificate()->subjectPublicKeyInfo();
        // assign working_public_key
        $state = $state->withWorkingPublicKey($pk_info);
        // assign working_public_key_parameters
        $params = ValidatorState::getAlgorithmParameters(
            $pk_info->algorithmIdentifier());
        if (null !== $params) {
            $state = $state->withWorkingPublicKeyParameters($params);
        } else {
            // if algorithms differ, set parameters to null
            if ($pk_info->algorithmIdentifier()->oid() !==
                 $state->workingPublicKeyAlgorithm()->oid()) {
                $state = $state->withWorkingPublicKeyParameters(null);
            }
        }
        // assign working_public_key_algorithm
        $state = $state->withWorkingPublicKeyAlgorithm(
            $pk_info->algorithmIdentifier());
        return $state;
    }
private function _setPublicKeyState(ValidatorState $state, Certificate $cert): ValidatorState
    {
        $pk_info = $cert->tbsCertificate()->subjectPublicKeyInfo();
        // assign working_public_key
        $state = $state->withWorkingPublicKey($pk_info);
        // assign working_public_key_parameters
        $params = ValidatorState::getAlgorithmParameters(
            $pk_info->algorithmIdentifier());
        if (null !== $params) {
            $state = $state->withWorkingPublicKeyParameters($params);
        } else {
            // if algorithms differ, set parameters to null
            if ($pk_info->algorithmIdentifier()->oid() !==
                 $state->workingPublicKeyAlgorithm()->oid()) {
                $state = $state->withWorkingPublicKeyParameters(null);
            }
        }
        // assign working_public_key_algorithm
        $state = $state->withWorkingPublicKeyAlgorithm(
            $pk_info->algorithmIdentifier());
        return $state;
    }
private function _setPublicKeyState ( ValidatorState $ state , Certificate $ cert ) : ValidatorState { $ pk_info = $ cert -> tbsCertificate ( ) -> subjectPublicKeyInfo ( ) ; // assign working_public_key $ state = $ state -> withWorkingPublicKey ( $ pk_info ) ; // assign working_public_key_parameters $ params = ValidatorState :: getAlgorithmParameters ( $ pk_info -> algorithmIdentifier ( ) ) ; if ( null !== $ params ) { $ state = $ state -> withWorkingPublicKeyParameters ( $ params ) ; } else { // if algorithms differ, set parameters to null if ( $ pk_info -> algorithmIdentifier ( ) -> oid ( ) !== $ state -> workingPublicKeyAlgorithm ( ) -> oid ( ) ) { $ state = $ state -> withWorkingPublicKeyParameters ( null ) ; } } // assign working_public_key_algorithm $ state = $ state -> withWorkingPublicKeyAlgorithm ( $ pk_info -> algorithmIdentifier ( ) ) ; return $ state ; }
Update working_public_key, working_public_key_parameters and
working_public_key_algorithm state variables from certificate.

@param ValidatorState $state
@param Certificate $cert
@return ValidatorState
Update working_public_key working_public_key_parameters and working_public_key_algorithm state variables from certificate .