Esempio n. 1
0
function CreateNewCA()
{
    if (!$GLOBALS['isCA']) {
        return false;
    }
    // CA私钥
    $CAPrivKey = new Crypt_RSA();
    $keyArray = $CAPrivKey->createKey($GLOBALS['RSALength']);
    $CAPrivKey->loadKey($keyArray['privatekey']);
    $pubKey = new Crypt_RSA();
    $pubKey->loadKey($keyArray['publickey']);
    $pubKey->setPublicKey();
    // CA 公钥 x509
    $subject = new File_X509();
    $subject->setDNProp('id-at-organizationName', $GLOBALS['CAname'] . ' CA');
    $subject->setPublicKey($pubKey);
    $issuer = new File_X509();
    $issuer->setPrivateKey($CAPrivKey);
    $issuer->setDN($CASubject = $subject->getDN());
    $x509 = new File_X509();
    $x509->makeCA();
    $result = $x509->sign($issuer, $subject);
    setConfig_CAPublishX509($x509->saveX509($result));
    setConfig_CAPrivateKey($keyArray['privatekey']);
    return true;
}
function setConfig_CAPublishPEM($value)
{
    setConfig_CAPublishX509($value);
}