/**
  * @param OpenIdMessage $message
  * @return bool
  */
 public static function IsOpenIdDHAssociationSessionRequest(OpenIdMessage $message)
 {
     if (OpenIdAssociationSessionRequest::IsOpenIdAssociationSessionRequest($message)) {
         $session_type = $message->getParam(OpenIdProtocol::OpenIDProtocol_SessionType);
         if ($session_type == OpenIdProtocol::AssociationSessionTypeDHSHA1 || $session_type == OpenIdProtocol::AssociationSessionTypeDHSHA256) {
             return true;
         }
     }
     return false;
 }
 /**
  * @param OpenIdMessage $message
  * @return null|SessionAssociationDHStrategy|SessionAssociationUnencryptedStrategy
  */
 public static function buildSessionAssociationStrategy(OpenIdMessage $message)
 {
     $association_service = ServiceLocator::getInstance()->getService(OpenIdServiceCatalog::AssociationService);
     $configuration_service = ServiceLocator::getInstance()->getService(UtilsServiceCatalog::ServerConfigurationService);
     $log_service = ServiceLocator::getInstance()->getService(UtilsServiceCatalog::LogService);
     if (OpenIdDHAssociationSessionRequest::IsOpenIdDHAssociationSessionRequest($message)) {
         return new SessionAssociationDHStrategy(new OpenIdDHAssociationSessionRequest($message), $association_service, $configuration_service, $log_service);
     }
     if (OpenIdAssociationSessionRequest::IsOpenIdAssociationSessionRequest($message)) {
         return new SessionAssociationUnencryptedStrategy(new OpenIdAssociationSessionRequest($message), $association_service, $configuration_service, $log_service);
     }
     return null;
 }
 /**
  * @param OpenIdMessage $message
  * @return bool
  */
 protected function canHandle(OpenIdMessage $message)
 {
     $res = OpenIdAssociationSessionRequest::IsOpenIdAssociationSessionRequest($message);
     return $res;
 }