• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP openssl_csr_export函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中openssl_csr_export函数的典型用法代码示例。如果您正苦于以下问题:PHP openssl_csr_export函数的具体用法?PHP openssl_csr_export怎么用?PHP openssl_csr_export使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了openssl_csr_export函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: __toString

 /**
  * @return string
  */
 public function __toString()
 {
     $this->generate();
     $output = '';
     openssl_csr_export($this->request, $output);
     return $output;
 }
开发者ID:genkgo,项目名称:push,代码行数:10,代码来源:SigningRequest.php


示例2: generate

    /**
     * {@inheritdoc}
     */
    public function generate(KeyPair $keyPair, array $domains)
    {
        if (!($privateKey = openssl_pkey_get_private($keyPair->getPrivate()))) {
            // TODO: Improve error message
            throw new AcmeException("Couldn't use private key.");
        }
        $san = implode(",", array_map(function ($dns) {
            return "DNS:{$dns}";
        }, $domains));
        // http://www.heise.de/netze/rfc/rfcs/rfc7633.shtml
        // http://www.heise.de/netze/rfc/rfcs/rfc6066.shtml
        $mustStaple = $this->mustStaple ? "tlsfeature = status_request" : "";
        $tempFile = tempnam(sys_get_temp_dir(), "acme-openssl-config-");
        $tempConf = <<<EOL
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
{$mustStaple}

[ req_distinguished_name ]

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation
subjectAltName = {$san}
EOL;
        (yield \Amp\File\put($tempFile, $tempConf));
        $csr = openssl_csr_new(["CN" => reset($domains)], $privateKey, ["digest_alg" => "sha256", "config" => $tempFile]);
        (yield \Amp\File\unlink($tempFile));
        if (!$csr) {
            // TODO: Improve error message
            throw new AcmeException("CSR could not be generated.");
        }
        (yield new CoroutineResult(openssl_csr_export($csr, $csr)));
    }
开发者ID:kelunik,项目名称:acme,代码行数:38,代码来源:OpenSSLCSRGenerator.php


示例3: createNewKeyPair

 /**
  * Creates a new public/private key pair using PHP OpenSSL extension.
  *
  * @return \TYPO3\CMS\Rsaauth\Keypair A new key pair or NULL in case of error
  * @see tx_rsaauth_abstract_backend::createNewKeyPair()
  */
 public function createNewKeyPair()
 {
     $result = NULL;
     $privateKey = @openssl_pkey_new();
     if ($privateKey) {
         // Create private key as string
         $privateKeyStr = '';
         openssl_pkey_export($privateKey, $privateKeyStr);
         // Prepare public key information
         $exportedData = '';
         $csr = openssl_csr_new(array(), $privateKey);
         openssl_csr_export($csr, $exportedData, FALSE);
         // Get public key (in fact modulus) and exponent
         $publicKey = $this->extractPublicKeyModulus($exportedData);
         $exponent = $this->extractExponent($exportedData);
         // Create result object
         $result = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rsaauth\\Keypair');
         /** @var $result \TYPO3\CMS\Rsaauth\Keypair */
         $result->setExponent($exponent);
         $result->setPrivateKey($privateKeyStr);
         $result->setPublicKey($publicKey);
         // Clean up all resources
         openssl_free_key($privateKey);
     }
     return $result;
 }
开发者ID:nicksergio,项目名称:TYPO3v4-Core,代码行数:32,代码来源:PhpBackend.php


示例4: createNewKeyPair

 /**
  * Creates a new key pair for the encryption or gets the existing key pair (if one already has been generated).
  *
  * There should only be one key pair per request because the second private key would overwrites the first private
  * key. So the submitting the form with the first public key would not work anymore.
  *
  * @return \TYPO3\CMS\Rsaauth\Keypair|NULL a key pair or NULL in case of error
  */
 public function createNewKeyPair()
 {
     /** @var $keyPair \TYPO3\CMS\Rsaauth\Keypair */
     $keyPair = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rsaauth\\Keypair');
     if ($keyPair->isReady()) {
         return $keyPair;
     }
     $privateKey = @openssl_pkey_new();
     if ($privateKey !== FALSE) {
         // Create private key as string
         $privateKeyStr = '';
         openssl_pkey_export($privateKey, $privateKeyStr);
         // Prepare public key information
         $exportedData = '';
         $csr = openssl_csr_new(array('localityName' => 'foo', 'organizationName' => 'bar'), $privateKey);
         openssl_csr_export($csr, $exportedData, FALSE);
         // Get public key (in fact modulus) and exponent
         $publicKey = $this->extractPublicKeyModulus($exportedData);
         $exponent = $this->extractExponent($exportedData);
         $keyPair->setExponent($exponent);
         $keyPair->setPrivateKey($privateKeyStr);
         $keyPair->setPublicKey($publicKey);
         // Clean up all resources
         openssl_free_key($privateKey);
     } else {
         $keyPair = NULL;
     }
     return $keyPair;
 }
开发者ID:khanhdeux,项目名称:typo3test,代码行数:37,代码来源:PhpBackend.php


示例5: run

 public function run()
 {
     if (strrev($this->input['folder']) !== DIRECTORY_SEPARATOR) {
         $this->input['folder'] .= DIRECTORY_SEPARATOR;
     }
     $files = [];
     foreach (['pub', 'key', 'crt', 'csr'] as $extension) {
         $files[$extension] = sprintf('%s%s%s.%s', $this->input['folder'], $this->input['prefix'], $this->input['hostname'], $extension);
     }
     foreach ($files as $file) {
         if (file_exists($file)) {
             throw new RuntimeException(sprintf('File exist: %s', $file));
         }
     }
     $dn = array("countryName" => $this->input['country'], "stateOrProvinceName" => $this->input['state-or-province-name'], "localityName" => $this->input['locality-name'], "organizationName" => $this->input['organization-name'], "organizationalUnitName" => $this->input['organizational-unit-name'], "commonName" => $this->input['common-name'], "emailAddress" => $this->input['email-address']);
     // Create the private and public key
     $res = openssl_pkey_new(['digest_alg' => $this->input['alg'], 'private_key_bits' => $this->input['bits'], 'private_key_type' => OPENSSL_KEYTYPE_RSA]);
     // Generate a certificate signing request
     $csr = openssl_csr_new(array_filter($dn), $res);
     // Creates a self-signed cert
     $sscert = openssl_csr_sign($csr, null, $res, $this->input['days']);
     openssl_csr_export($csr, $out);
     file_put_contents($files['csr'], $out);
     // Export certfile
     openssl_x509_export($sscert, $out);
     file_put_contents($files['crt'], $out);
     // Extract the private key from $res to $privKey
     openssl_pkey_export($res, $out);
     file_put_contents($files['key'], $out);
     // Extract the public key from $res to $pubKey
     $out = openssl_pkey_get_details($res);
     file_put_contents($files['pub'], $out["key"]);
 }
开发者ID:pbergman,项目名称:php-docker-token-auth,代码行数:33,代码来源:CreateKeys.php


示例6: createNewKeyPair

 /**
  * Creates a new public/private key pair using PHP OpenSSL extension.
  *
  * @return tx_rsaauth_keypair	A new key pair or null in case of error
  * @see tx_rsaauth_abstract_backend::createNewKeyPair()
  */
 public function createNewKeyPair()
 {
     $result = null;
     $privateKey = @openssl_pkey_new();
     if ($privateKey) {
         // Create private key as string
         $privateKeyStr = '';
         openssl_pkey_export($privateKey, $privateKeyStr);
         // Prepare public key information
         $exportedData = '';
         $csr = openssl_csr_new(array(), $privateKey);
         openssl_csr_export($csr, $exportedData, false);
         // Get public key (in fact modulus) and exponent
         $publicKey = $this->extractPublicKeyModulus($exportedData);
         $exponent = $this->extractExponent($exportedData);
         // Create result object
         $result = t3lib_div::makeInstance('tx_rsaauth_keypair');
         /* @var $result tx_rsaauth_keypair */
         $result->setExponent($exponent);
         $result->setPrivateKey($privateKeyStr);
         $result->setPublicKey($publicKey);
         // Clean up all resources
         openssl_free_key($privateKey);
     }
     return $result;
 }
开发者ID:zsolt-molnar,项目名称:TYPO3-4.5-trunk,代码行数:32,代码来源:class.tx_rsaauth_php_backend.php


示例7: getCSRFromFile

 private function getCSRFromFile($file)
 {
     $rsa = $this->getFile($file);
     $csr = openssl_csr_new(array(), $rsa);
     openssl_csr_export($csr, $csr_out);
     return $csr_out;
 }
开发者ID:henrikau,项目名称:confusa,代码行数:7,代码来源:test_csr_upload.php


示例8: export

 /**
  * Export this CSR
  *
  * @return  string CSR
  */
 public function export()
 {
     if (FALSE === openssl_csr_export($this->_res, $out)) {
         trigger_error(implode("\n  @", OpenSslUtil::getErrors()), E_USER_NOTICE);
         throw new XPException('Could not export CSR');
     }
     return $out;
 }
开发者ID:melogamepay,项目名称:xp-framework,代码行数:13,代码来源:CSR.class.php


示例9: signCertificateRequest

 /**
  * Generate a CSR from the given distinguishedName and keyPair.
  *
  * @param CertificateRequest $certificateRequest
  *
  * @return string
  */
 public function signCertificateRequest(CertificateRequest $certificateRequest)
 {
     $csrObject = $this->createCsrWithSANsObject($certificateRequest);
     if (!$csrObject || !openssl_csr_export($csrObject, $csrExport)) {
         throw new CSRSigningException(sprintf('OpenSSL CSR signing failed with error: %s', openssl_error_string()));
     }
     return $csrExport;
 }
开发者ID:acmephp,项目名称:acmephp,代码行数:15,代码来源:CertificateRequestSigner.php


示例10: generateKeys

 function generateKeys($passphrase)
 {
     $identity = Zend_Auth::getInstance()->getIdentity();
     $dn = array("countryName" => $this->_config->countryName, "stateOrProvinceName" => $this->_config->stateOrProvinceName, "localityName" => $this->_config->localityName, "organizationName" => $this->_config->organizationName, "organizationalUnitName" => $this->_config->organizationUnitName, "commonName" => $identity->firstName . " " . $identity->lastName . "(" . $identity->username . ")", "emailAddress" => $this->_config->emailAddress);
     $privkey = openssl_pkey_new();
     $csr = openssl_csr_new($dn, $privkey);
     $sscert = openssl_csr_sign($csr, null, $privkey, $this->_config->numberOfDays);
     openssl_x509_export($sscert, $publickey);
     openssl_pkey_export($privkey, $privatekey);
     openssl_csr_export($csr, $csrStr);
     $this->publicKey = $publickey;
     $this->privateKey = $this->_encryptPrivateKey($privatekey, $passphrase);
 }
开发者ID:jakedorst,项目名称:ch3-dev-preview,代码行数:13,代码来源:UserKey.php


示例11: createKeys

 /**
  * Generates a new key pair and returns it as an array, which has
  * 0 => Public Key
  * 1 => Exponent
  * 3 => Private Key
  *
  * @return array
  */
 public function createKeys()
 {
     // Initialize
     $keyResource = openssl_pkey_new();
     $csr = openssl_csr_new(array(), $keyResource);
     // Export the private key
     openssl_pkey_export($keyResource, $privateKey);
     // Export the public key
     openssl_csr_export($csr, $data, FALSE);
     preg_match('/Modulus:\\n?(?P<publicKey>[a-f0-9:\\s]+)\\s*Exponent:\\s*(?P<exponent>[0-9]+)/', $data, $matches);
     $publicKey = trim(strtoupper(substr(preg_replace('/[\\s\\n\\r:]+/', '', $matches['publicKey']), 2)));
     $exponent = (int) $matches['exponent'];
     openssl_free_key($keyResource);
     return array($publicKey, $exponent, $privateKey);
 }
开发者ID:phpsource,项目名称:rsa-javascript-php,代码行数:23,代码来源:ModuleBackend.php


示例12: export

 /**
  * A method for exporting the certificate.
  *
  * @param mixed $password
  * @return string
  */
 public function export($type = 'x509', $password = null)
 {
     if ($this->signed === false) {
         openssl_csr_export($this->csr, $out);
         return $out;
     } else {
         switch ($type) {
             case 'x509':
                 openssl_x509_export($this->csr, $out);
                 break;
             case 'pkcs12':
                 openssl_pkcs12_export($this->csr, $out, $this->keyPair->privateKey, $password);
                 break;
         }
         return $out;
     }
 }
开发者ID:phpsource,项目名称:PHP-Security-Library,代码行数:23,代码来源:Certificate.php


示例13: gen_new_keypair

 function gen_new_keypair($expired = false)
 {
     $config = array('private_key_bits' => 384, 'digest_alg' => 'sha1', 'private_key_type' => OPENSSL_KEYTYPE_RSA);
     $privkey = openssl_pkey_new($config);
     $pw = "c0nfusa";
     $dn = array("countryName" => 'NO', "localityName" => 'Drammen', "organizationName" => 'Austad IT', "commonName" => 'austad.us', "emailAddress" => '[email protected]');
     $csr = openssl_csr_new($dn, $privkey);
     if ($expired) {
         $cert = openssl_csr_sign($csr, null, $privkey, -1);
     } else {
         $cert = openssl_csr_sign($csr, null, $privkey, 14);
     }
     openssl_pkey_export($privkey, $privkeystr, $pw);
     openssl_x509_export($cert, $certstr);
     openssl_csr_export($csr, $csrstr);
     return array('key' => $privkeystr, 'cert' => $certstr, 'csr' => $csrstr, 'pw' => $pw);
 }
开发者ID:henrikau,项目名称:confusa,代码行数:17,代码来源:test_curl_cert.php


示例14: test_openssl_csr_sign

function test_openssl_csr_sign()
{
    $dn = array("countryName", "stateOrProvinceName", "localityName", "organizationName", "organizationalUnitName", "commonName", "emailAddress");
    $privkeypass = "1234";
    $numberofdays = 365;
    $privkey = openssl_pkey_new();
    VERIFY($privkey != null);
    $csr = openssl_csr_new($dn, $privkey);
    VERIFY($csr != null);
    $scert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
    openssl_x509_export($scert, $publickey);
    openssl_pkey_export($privkey, $privatekey, $privkeypass);
    openssl_csr_export($csr, $csrStr);
    VERIFY(strlen($privatekey) > 500);
    VERIFY(strlen($publickey) > 800);
    VERIFY(strlen($csrStr) > 500);
}
开发者ID:ezoic,项目名称:hhvm,代码行数:17,代码来源:ext_openssl.php


示例15: gen_CSR_PKey

 public function gen_CSR_PKey($dn, &$privKey, &$csr_export)
 {
     $config = array("digest_alg" => "sha1", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA);
     $dn_full = array_merge(array("countryName" => "RU", "stateOrProvinceName" => "Russia", "localityName" => ".", "organizationalUnitName" => "."), $dn);
     $res = openssl_pkey_new($config);
     $csr_origin = openssl_csr_new($dn_full, $res);
     $csr_full = "";
     openssl_pkey_export($res, $privKey);
     openssl_csr_export($csr_origin, $csr_export);
     openssl_csr_export($csr_origin, $csr_full, false);
     preg_match('"Signature Algorithm\\: (.*)-----BEGIN"ims', $csr_full, $sign);
     $sign = str_replace("\t", "", $sign);
     if ($sign) {
         $sign = $sign[1];
         $a = explode("\n", $sign);
         unset($a[0]);
         $sign = str_replace("         ", "", trim(join("\n", $a)));
     }
     return $sign;
 }
开发者ID:andre2git,项目名称:yandex-money-cms-opencart2,代码行数:20,代码来源:mws.php


示例16: csr_generate

function csr_generate(&$cert, $keylen, $dn, $digest_alg = "sha256")
{
    $args = array("x509_extensions" => "v3_req", "digest_alg" => $digest_alg, "private_key_bits" => (int) $keylen, "private_key_type" => OPENSSL_KEYTYPE_RSA, "encrypt_key" => false);
    // generate a new key pair
    $res_key = openssl_pkey_new($args);
    if (!$res_key) {
        return false;
    }
    // generate a certificate signing request
    $res_csr = openssl_csr_new($dn, $res_key, $args);
    if (!$res_csr) {
        return false;
    }
    // export our request data
    if (!openssl_pkey_export($res_key, $str_key) || !openssl_csr_export($res_csr, $str_csr)) {
        return false;
    }
    // return our request information
    $cert['csr'] = base64_encode($str_csr);
    $cert['prv'] = base64_encode($str_key);
    return true;
}
开发者ID:Anasxrt,项目名称:core,代码行数:22,代码来源:system_certmanager.php


示例17: csr_generate

function csr_generate(&$cert, $keylen, $dn, $digest_alg = 'sha256')
{
    $args = array('config' => '/usr/local/etc/ssl/opnsense.cnf', 'private_key_type' => OPENSSL_KEYTYPE_RSA, 'private_key_bits' => (int) $keylen, 'x509_extensions' => 'v3_req', 'digest_alg' => $digest_alg, 'encrypt_key' => false);
    // generate a new key pair
    $res_key = openssl_pkey_new($args);
    if (!$res_key) {
        return false;
    }
    // generate a certificate signing request
    $res_csr = openssl_csr_new($dn, $res_key, $args);
    if (!$res_csr) {
        return false;
    }
    // export our request data
    if (!openssl_pkey_export($res_key, $str_key) || !openssl_csr_export($res_csr, $str_csr)) {
        return false;
    }
    // return our request information
    $cert['csr'] = base64_encode($str_csr);
    $cert['prv'] = base64_encode($str_key);
    return true;
}
开发者ID:paudam,项目名称:opnsense-core,代码行数:22,代码来源:system_certmanager.php


示例18: doRequestCertificate

 private function doRequestCertificate(KeyPair $keyPair, array $domains) : Generator
 {
     if (!($privateKey = openssl_pkey_get_private($keyPair->getPrivate()))) {
         throw new AcmeException("Couldn't use private key");
     }
     $san = implode(",", array_map(function ($dns) {
         return "DNS:" . $dns;
     }, $domains));
     $csr = openssl_csr_new(["CN" => reset($domains), "ST" => "Germany", "C" => "DE", "O" => "Unknown", "subjectAltName" => $san, "basicConstraints" => "CA:FALSE", "extendedKeyUsage" => "serverAuth"], $privateKey, ["digest_alg" => "sha256", "req_extensions" => "v3_req"]);
     if (!$csr) {
         throw new AcmeException("CSR couldn't be generated!");
     }
     openssl_csr_export($csr, $csr);
     $begin = "REQUEST-----";
     $end = "----END";
     $csr = substr($csr, strpos($csr, $begin) + strlen($begin));
     $csr = substr($csr, 0, strpos($csr, $end));
     $enc = new Base64UrlSafeEncoder();
     /** @var Response $response */
     $response = (yield $this->acmeClient->post(AcmeResource::NEW_CERTIFICATE, ["csr" => $enc->encode(base64_decode($csr))]));
     if ($response->getStatus() === 201) {
         if (!$response->hasHeader("location")) {
             throw new AcmeException("Protocol Violation: No Location Header");
         }
         return current($response->getHeader("location"));
     }
     throw new AcmeException("Invalid response code: " . $response->getStatus() . "\n" . $response->getBody());
 }
开发者ID:staabm,项目名称:acme,代码行数:28,代码来源:AcmeService.php


示例19: createPublicPrivate

 function createPublicPrivate()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $data["commonName"] = "lxcenter.org";
     $data["countryName"] = "IN";
     $data["stateOrProvinceName"] = "in";
     $data["localityName"] = "in";
     $data["organizationName"] = "lx";
     $data["organizationalUnitName"] = "soft";
     $data["emailAddress"] = "[email protected]";
     foreach ($data as $key => $value) {
         $ltemp[$key] = $value;
     }
     $privkey = openssl_pkey_new();
     openssl_pkey_export($privkey, $text_key_content);
     $csr = openssl_csr_new($ltemp, $privkey);
     openssl_csr_export($csr, $text_csr_content);
     $sscert = openssl_csr_sign($csr, null, $privkey, 365);
     openssl_x509_export($sscert, $text_crt_content);
     $this->text_private_key = $text_key_content;
     $this->text_public_key = $text_crt_content;
 }
开发者ID:lonelywoolf,项目名称:hypervm,代码行数:22,代码来源:lxclient.php


示例20: paypal_encrypt_wizard_step2

 public function paypal_encrypt_wizard_step2()
 {
     access::verify_csrf();
     $form = self::keyGenerationForm();
     if (!$form->validate()) {
         self::paypal_encrypt_wizard_step1();
         return;
     }
     $ssldir = str_replace('\\', '/', VARPATH . 'certificate');
     $ssldir = rtrim($ssldir, '/') . '/';
     if (!is_dir($ssldir)) {
         // Create the upload directory
         mkdir($ssldir, 0777, TRUE);
     }
     $prkeyfile = $ssldir . "myprvkey.pem";
     $pubcertfile = $ssldir . "mypubcert.pem";
     $certreqfile = $ssldir . "mycertreq.pem";
     $dn = array("countryName" => $form->encrypt->countryName->value, "stateOrProvinceName" => $form->encrypt->stateOrProvinceName->value, "localityName" => $form->encrypt->localityName->value, "organizationName" => $form->encrypt->organizationName->value, "organizationalUnitName" => $form->encrypt->organizationalUnitName->value, "commonName" => $form->encrypt->commonName->value, "emailAddress" => $form->encrypt->emailAddress->value);
     $privkeypass = $form->encrypt->privKeyPass->value;
     $numberofdays = 365;
     $config = array("private_key_bits" => 1024);
     $privkey = openssl_pkey_new($config);
     $csr = openssl_csr_new($dn, $privkey);
     $sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
     openssl_x509_export($sscert, $publickey);
     openssl_pkey_export($privkey, $privatekey, $privkeypass);
     openssl_csr_export($csr, $csrStr);
     openssl_x509_export_to_file($sscert, $pubcertfile);
     openssl_pkey_export_to_file($privkey, $prkeyfile, $privkeypass);
     openssl_csr_export_to_file($csr, $certreqfile);
     //echo "Your Public Certificate has been saved to " . $pubcertfile . "<br><br>";
     //echo "Your Private Key has been saved to " . $prkeyfile . "<br><br>";
     //echo "Your Certificate Request has been saved to " . $certreqfile . "<br><br>";
     //echo $privatekey; // Will hold the exported PriKey
     //echo $publickey; // Will hold the exported PubKey
     //echo $csrStr; // Will hold the exported Certificate
 }
开发者ID:rledisez,项目名称:gallery3-contrib,代码行数:37,代码来源:admin_configure.php



注:本文中的openssl_csr_export函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP openssl_csr_new函数代码示例发布时间:2022-05-15
下一篇:
PHP openssl_cipher_iv_length函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap