<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
	<services>
		<service id="scheb_two_factor.security.totp_factory" class="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Totp\TotpFactory" public="true">
			<argument>%scheb_two_factor.totp.server_name%</argument>
			<argument>%scheb_two_factor.totp.issuer%</argument>
			<argument>%scheb_two_factor.totp.parameters%</argument>
		</service>

		<service id="scheb_two_factor.security.totp_authenticator" class="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Totp\TotpAuthenticator" public="true">
			<argument type="service" id="scheb_two_factor.security.totp_factory" />
			<argument>%scheb_two_factor.totp.window%</argument>
		</service>

		<service id="scheb_two_factor.security.totp.default_form_renderer" class="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\DefaultTwoFactorFormRenderer" lazy="true">
			<argument type="service" id="twig" />
			<argument>%scheb_two_factor.totp.template%</argument>
		</service>

		<service id="scheb_two_factor.security.totp.form_renderer" alias="scheb_two_factor.security.totp.default_form_renderer" />

		<service id="scheb_two_factor.security.totp.provider" class="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Totp\TotpAuthenticatorTwoFactorProvider">
			<tag name="scheb_two_factor.provider" alias="totp" />
			<argument type="service" id="scheb_two_factor.security.totp_authenticator" />
			<argument type="service" id="scheb_two_factor.security.totp.form_renderer" />
		</service>

		<!-- Aliases for auto-wiring -->
		<service id="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Totp\TotpAuthenticatorInterface" alias="scheb_two_factor.security.totp_authenticator" public="true" />
		<service id="Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Totp\TotpAuthenticator" alias="scheb_two_factor.security.totp_authenticator" public="true" />
	</services>
</container>
