PHP の OpenSSL 関数で DSA(DSS) を使うとエラー

PHP で OpenSSL 関数を使って DSA 公開鍵での暗号化を行おうとしたところ

Warning: openssl_public_encrypt(): key type not supported in this PHP build!

のようにエラーがでてしまった。
 
PHP のソースを追ってみたところ、どうやら PHP では現在のところ DSA の秘密鍵/公開鍵についてはサポートされていないようです。
 
php-5.2.1/ext/openssl/openssl.c:

PHP_FUNCTION(openssl_public_encrypt)
{
// ** 省略 **
        switch (pkey->type) {
                case EVP_PKEY_RSA:
                case EVP_PKEY_RSA2:
                        successful = (RSA_public_encrypt(data_len,
                                                (unsigned char *)data,
                                                cryptedbuf,
                                                pkey->pkey.rsa,
                                                padding) == cryptedlen);
                        break;
                default:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, “key type no
t supported in this PHP build!”);

        }
// ** 以下略 **

のように、
openssl_open(), openssl_seal(), openssl_private_decrypt(), openssl_private_encrypt(), openssl_public_encrypt(), openssl_public_decrypt()
など、暗号化/復号化を行う関数では RSA か RSA2 の時の処理しか実装されていないようです。
 
参考:
OpenSSL 関数(php.net)