package io.github.thankpoint.security.api.key.symmetric;

import io.github.thankpoint.security.api.AbstractSecurityFactoryBuilder;

/**
 * Abstract interface to {@link #key(SecuritySymmetricKeyConfig) configure and build} a
 * {@link SecuritySymmetricKeyFactory}.
 *
 * @see io.github.thankpoint.security.api.SecurityBuilder
 * @author thks
 */
public abstract interface SecuritySymmetricKeyFactoryBuilder extends AbstractSecurityFactoryBuilder {

  /**
   * @param configuration the {@link SecuritySymmetricKeyConfig}.
   * @return the {@link SecuritySymmetricKeyFactory} for the given {@code configuration}
   */
  SecuritySymmetricKeyFactory key(SecuritySymmetricKeyConfig configuration);

}
