Advertisement
Guest User

Untitled

a guest
Feb 9th, 2015
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.29 KB | None | 0 0
  1. include('File/X509.php');
  2. include('Crypt/RSA.php');
  3.  
  4. // create private key / x.509 cert for stunnel / website
  5. $privKey = new Crypt_RSA();
  6. //extract($privKey->createKey());
  7. $privKey->loadKey('-----BEGIN RSA PRIVATE KEY-----
  8. MIICXQIBAAKBgQDMusKBreFjkYfM1onUcjsaDse10EO2YkLudj/OKxNWSi+ctjg3Ir8J1hZkcCZq
  9. GAiiEkdB7e9LIke0x+W0TLK5NOZ5nxrRpqo3z/CHHo+ylxcJ2rYYoqrszbqeUoT+SgkTvKcuCnuJ
  10. mzgyebfCyciKxWidE1HDIDXILPSDbEyqpQIDAQABAoGAIeJ7VPlRh6hLoLSVhWsOqyZtGYOJ4YLr
  11. 7wn1T4tDnRGURczHCyEeG2Oqux7wzLiDnUeHMbtO0tGuqpY3R5s2LTM/KmeGyYqOZUUjTQWzo04g
  12. 34VM+PuNCnJKabYwkQOMc5zxqpCGdVch5x+Pi2TX6IMzIgDCh7Ferz+1uR2sbhUCQQD2RVLDefjM
  13. MrSgon13V/qJmGnY41H9qiYF/aAS5AYx4HKJpLNkhIgZsA4vWo+NZrQR7RWCPHfyR3fQmQSVP4KD
  14. AkEA1NFOWYLxafZfNEt2H5EwrtOq7ibuL/0eTvmr199LZzYH/vB1o+9ElvStPHKDTg1cwJDcLcf9
  15. XopBMxqAn9X1twJBAOikODj9AjE0PTn6Bfg1njFZT7RZmdy9XUoPe6YczlVTqB+q/OSZ5lAN5niJ
  16. Xk6/lJ/SjZ0ILm8rYF4oDxJGeq0CQD3prnuIBqenD0dtdK32VU1nMuEZ3k2Du9+J7x5cTdl29JiM
  17. aA0LPM8V25gsUFrStFspSYTgG6v3WMR/P1BAtL0CQQCIIuGzsZgQP4ZvTkzEEteniRQtaMtuBBVV
  18. wQxt3ZO2YUkPruR8Kt0jwbEcf/mEPBO0bBl1e8IRg3eZaf5f3s8y
  19. -----END RSA PRIVATE KEY-----');
  20.  
  21. $pubKey = new Crypt_RSA();
  22. $pubKey->loadKey($privKey->getPublicKey());
  23. $pubKey->setPublicKey();
  24.  
  25. $subject = new File_X509();
  26. $subject->setDNProp('id-at-organizationName', 'phpseclib demo cert');
  27. //$subject->removeDNProp('id-at-organizationName');
  28. $subject->setPublicKey($pubKey);
  29. $subject->setDomain('www.whatever.com');
  30.  
  31. $issuer = new File_X509();
  32. $issuer->setPrivateKey($privKey);
  33. $issuer->setDN($subject->getDN());
  34.  
  35. $x509 = new File_X509();
  36. $x509->setSerialNumber('19');
  37. //$x509->setStartDate('-1 month'); // default: now
  38. //$x509->setEndDate('+1 year'); // default: +1 year
  39.  
  40.  
  41. $result = $x509->sign($issuer, $subject);
  42. $subject = new File_X509();
  43. $subject->loadX509($result);
  44.  
  45. $asn1 = new File_ASN1();
  46.  
  47.  
  48. $subject->signatureSubject[0] = chr(0x20) ^ $subject->signatureSubject[0];
  49. $result = $x509->sign($issuer, $subject);
  50. $new = $x509->saveX509($result, 1);
  51. $new[0] = chr(0x20) ^ $new[0];
  52.  
  53. $new = "-----BEGIN CERTIFICATE-----\r\n" . chunk_split(base64_encode($new)) . '-----END CERTIFICATE-----';
  54.  
  55.  
  56.  
  57. //print_r($result); exit;
  58.  
  59.  
  60. echo "the stunnel.pem contents are as follows:\r\n\r\n";
  61. echo $privKey->getPrivateKey();
  62. echo "\r\n";
  63. echo $new;
  64. echo "\r\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement