Shockrate

p7m

May 18th, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.53 KB | None | 0 0
  1.  
  2. <?php
  3.  
  4. $xmlDoc = simplexml_load_file('https://eidas.agid.gov.it/TL/TSL-IT.xml');
  5.  
  6. //mi collego ad agenzia entrate per prendere i certificati possibili
  7.  
  8. $content = "";
  9.  
  10. foreach ($xmlDoc->SchemeInformation->PointersToOtherTSL->OtherTSLPointer->ServiceDigitalIdentities->ServiceDigitalIdentity as $key)
  11. {
  12.     $content .= "-----BEGIN CERTIFICATE-----" . PHP_EOL;
  13.     $content .= wordwrap($key->DigitalId->X509Certificate, 64, PHP_EOL, true);
  14.     $content .= PHP_EOL;
  15.     $content .= "-----END CERTIFICATE-----" . PHP_EOL;
  16.    
  17. }
  18.  
  19. foreach ($xmlDoc->TrustServiceProviderList->TrustServiceProvider as $key)
  20. {
  21.    
  22.     foreach ($key->TSPServices->TSPService as $key2) {
  23.        
  24.         $content .= "-----BEGIN CERTIFICATE-----" . PHP_EOL;
  25.         $content .= wordwrap($key2->ServiceInformation->ServiceDigitalIdentity->DigitalId->X509Certificate, 64, PHP_EOL, true);
  26.         $content .= PHP_EOL;
  27.         $content .= "-----END CERTIFICATE-----" . PHP_EOL;
  28.        
  29.    
  30.     }
  31.    
  32. }
  33.  
  34. //var_dump($content);
  35.  
  36. file_put_contents("test.txt",$content);
  37.  
  38. //mi crea file con tutti i certificati per decriptare
  39.  
  40. ?>
  41.  
  42. <?php
  43.    
  44.     $file = "/home/customer/www/contabilita.duemetri.com/public_html/wp-content/themes/contabilita/file2.xml.p7m";
  45.  
  46.  
  47.     function der2smime($file){
  48.         $to=<<<TXT
  49.         MIME-Version: 1.0
  50.         Content-Disposition: attachment; filename=“smime.p7m”
  51.         Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name=“smime.p7m”
  52.         Content-Transfer-Encoding: base64
  53.         \n
  54.         TXT;
  55.         $from=file_get_contents($file);
  56.        
  57.         $to.=chunk_split(base64_encode($from));
  58.        
  59.         return file_put_contents("smime.p7m-b6m",$to);
  60.     }
  61.        
  62.     $filenobom = "NOBOMfile.xml.p7m"; //DESCRIZIONE NO-BOM (ora vuoto)
  63.    
  64.     //remove bom
  65.    
  66.     // -------- read the file-content ----
  67.     $str = file_get_contents($file);
  68.    
  69.     // -------- remove the utf-8 BOM ----
  70.     $str = str_replace("\xEF\xBB\xBF","",$str);
  71.    
  72.     //crea file senza bom
  73.    
  74.     file_put_contents($filenobom, $str);
  75.    
  76.     $response = der2smimeww($filenobom);
  77.  
  78.     var_dump($response);
  79.    
  80.     $output = openssl_pkcs7_verify ("smime.p7m-b6m" , 0 , null ,array("test.txt"),"test.txt","file.xml");
  81.     $output = openssl_pkcs7_verify ("/home/customer/www/contabilita.duemetri.com/public_html/wp-content/themes/contabilita/smime.p7m-b6m" , 0 , null ,array("/home/customer/www/contabilita.duemetri.com/public_html/wp-content/themes/contabilita/test.txt"), "/home/customer/www/contabilita.duemetri.com/public_html/wp-content/themes/contabilita/test.txt","/home/customer/www/contabilita.duemetri.com/public_html/wp-content/themes/contabilita/file2.xml");
  82.     var_dump($output);
  83.  
  84. ?>
Add Comment
Please, Sign In to add comment