Hi, I've created a patch for the modification I've made to the OpenSSL extension.
The patch modifies the openssl_sign() function to accept a fourth parameter, which specifies the hashing algorithm to use. I've added 4 new constants to represent the hashing algorithms: OPENSSL_ALGO_SHA1 OPENSSL_ALGO_MD5 OPENSSL_ALGO_MD4 OPENSSL_ALGO_MD2 Thanks, Scott [EMAIL PROTECTED]
46a47,50 > #define OPENSSL_ALGO_SHA1 1 > #define OPENSSL_ALGO_MD5 2 > #define OPENSSL_ALGO_MD4 3 > #define OPENSSL_ALGO_MD2 4 555a560,565 > /* signature algotithm constants */ > REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA1", OPENSSL_ALGO_SHA1, > CONST_CS|CONST_PERSISTENT); > REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD5", OPENSSL_ALGO_MD5, > CONST_CS|CONST_PERSISTENT); > REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD4", OPENSSL_ALGO_MD4, > CONST_CS|CONST_PERSISTENT); > REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, > CONST_CS|CONST_PERSISTENT); > 2715a2726,2727 > long signature_algo = OPENSSL_ALGO_SHA1; > EVP_MD *mdtype; 2717c2729 < if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz", &data, &data_len, &signature, &key) == FAILURE) --- > if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz|l", &data, > &data_len, &signature, &key, &signature_algo) == FAILURE) 2729c2741,2757 < EVP_SignInit(&md_ctx, EVP_sha1()); --- > switch(signature_algo) > { > case OPENSSL_ALGO_SHA1: > mdtype = EVP_sha1(); > break; > case OPENSSL_ALGO_MD5: > mdtype = EVP_md5(); > break; > case OPENSSL_ALGO_MD4: > mdtype = EVP_md4(); > break; > case OPENSSL_ALGO_MD2: > mdtype = EVP_md2(); > break; > } > > EVP_SignInit(&md_ctx, mdtype);
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php