$token->addIDPKey($idp_key);
     $token->addSTSCertificate('');
     $claims = $token->process($_POST['xmlToken']);
     if ($claims->isValid() && $claims->privatepersonalidentifier != NULL) {
         $ppid = $claims->privatepersonalidentifier;
         SimpleSAML_Logger::debug("PPID = {$ppid}");
         $ICconfig['InfoCard'] = $Infocard;
         $ICconfig['InfoCard']['issuer'] = $autoconfig->getValue('tokenserviceurl');
         //sspmod_InfoCard_Utils::getIssuer($sts_crt);
         $ICconfig['tokenserviceurl'] = $autoconfig->getValue('tokenserviceurl');
         $ICconfig['mexurl'] = $autoconfig->getValue('mexurl');
         $ICconfig['sts_key'] = $autoconfig->getValue('sts_key');
         $ICconfig['certificates'] = $autoconfig->getValue('certificates');
         $ICconfig['UserCredential'] = $autoconfig->getValue('UserCredential');
         $ICdata = sspmod_InfoCard_UserFunctions::fillICdata($username, $userCredential, $ppid);
         $IC = sspmod_InfoCard_STS::createCard($ICdata, $ICconfig);
         header('Content-Disposition: attachment; filename="' . $ICdata['CardName'] . '.crd"');
         header('Content-Type: application/x-informationcard');
         header('Content-Length:' . strlen($IC));
         echo $IC;
         $state = 'end';
     } else {
         SimpleSAML_Logger::debug('Wrong Self-Issued card');
         $error = 'wrong_IC';
         $state = "selfIssued";
     }
 } else {
     SimpleSAML_Logger::debug('NO HAY XML TOKEN');
     $error = NULL;
     $state = "selfIssued";
 }