Beispiel #1
0
    {
        return new DSASecretKey();
    }
    /**
     * Generate keypair
     *
     * Generates a keypair for a given keysize in bits
     *
     * @abstract
     * @access public
     * @static
     * @param int $keysize Keysize in bits
     * @return DSAKeyPair Returning an instance of the key pair
     */
    public static function generate($keysize)
    {
        if (!isset(self::$KEYSIZES[$keysize])) {
            throw new NoSuchAlgorithmException("keysize not supported");
        }
        $static_keys = self::$KEYSIZES[$keysize];
        $instance = new DSAKeyPair();
        $keys = CryptDSA::generate($static_keys["p"], $static_keys["q"], $static_keys["g"]);
        $instance->keysize = $keysize;
        $instance->secretKey = new DSASecretKey($keys["x"], $keysize);
        $instance->publicKey = new DSAPublicKey($keys["y"], $keysize);
        $instance->algorithm = $instance->publicKey->algorithm = $instance->secretKey->algorithm = "DS";
        return $instance;
    }
}
DSAKeyPair::initialize();