GAE中的OpenSSL公钥和私钥生成失败

时间:2017-03-19 11:32:39

标签: php google-app-engine google-app-engine-php

我刚写了一个简单的PHP函数,它生成公钥和私钥对。

在当地,它很棒。但在Google App Engine中,它不会产生任何密钥对。我检查GAE中是否存在所有必需的PHP函数。但为什么这不会生成密钥对。本地我使用PHP7.1和GAE PHP版本5.5.38。此外,GAE中已启用openssl。任何提示?当我的应用程序在GAE中时,我是否应该使用任何其他类似的方法来生成密钥对?

<?php

var_dump(function_exists("openssl_pkey_new"));
var_dump(function_exists("openssl_pkey_export"));
var_dump(function_exists("openssl_pkey_get_details"));


function generateKeyPair($config = [])
{
    $defaultConfig = array(
        "digest_alg" => "sha512",
        "private_key_bits" => 4096,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
    );
    $config = array_merge($defaultConfig, $config);
    $res = openssl_pkey_new($config);
    openssl_pkey_export($res, $privateKey);
    $publicKey = openssl_pkey_get_details($res);
    $publicKey = $publicKey["key"];
    return $key = [
        'private_key' => $privateKey,
        'public_key' => $publicKey
    ];
}

/**
 * Locally it works well. But in Google App Engine
 * 
 * Output: bool(true) bool(true) bool(true) array ('private_key' => NULL, 'public_key' => NULL)
 */
var_export(generateKeyPair());

0 个答案:

没有答案