]> granicus.if.org Git - php/commitdiff
commit for php bug 61421
authorMark Jones <mjones@i5.(none)>
Fri, 14 Sep 2012 14:59:14 +0000 (08:59 -0600)
committerStanislav Malyshev <stas@php.net>
Sun, 16 Sep 2012 05:59:34 +0000 (22:59 -0700)
enabling SHA2 and RMD160 for openssl signature verification

ext/openssl/openssl.c

index 7187a9601e6628bf0f389acb76f6762c500da9be..2b8cfd571aad439dd75e51fb3daac5b1ebd7c000 100644 (file)
 #define OPENSSL_ALGO_MD2       4
 #endif
 #define OPENSSL_ALGO_DSS1      5
-
+#if OPENSSL_VERSION_NUMBER >= 0x0090708fL
+#define OPENSSL_ALGO_SHA224 6
+#define OPENSSL_ALGO_SHA256 7
+#define OPENSSL_ALGO_SHA384 8
+#define OPENSSL_ALGO_SHA512 9
+#define OPENSSL_ALGO_RMD160 10
+#endif
 #define DEBUG_SMIME    0
 
 /* FIXME: Use the openssl constants instead of
@@ -954,6 +960,23 @@ static EVP_MD * php_openssl_get_evp_md_from_algo(long algo) { /* {{{ */
                case OPENSSL_ALGO_DSS1:
                        mdtype = (EVP_MD *) EVP_dss1();
                        break;
+#if OPENSSL_VERSION_NUMBER >= 0x0090708fL
+               case OPENSSL_ALGO_SHA224:
+                       mdtype = (EVP_MD *) EVP_sha224();
+                       break;
+               case OPENSSL_ALGO_SHA256:
+                       mdtype = (EVP_MD *) EVP_sha256();
+                       break;
+               case OPENSSL_ALGO_SHA384:
+                       mdtype = (EVP_MD *) EVP_sha384();
+                       break;
+               case OPENSSL_ALGO_SHA512:
+                       mdtype = (EVP_MD *) EVP_sha512();
+                       break;
+               case OPENSSL_ALGO_RMD160:
+                       mdtype = (EVP_MD *) EVP_ripemd160();
+                       break;
+#endif
                default:
                        return NULL;
                        break;
@@ -1048,6 +1071,13 @@ PHP_MINIT_FUNCTION(openssl)
        REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
 #endif
        REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
+#if OPENSSL_VERSION_NUMBER >= 0x0090708fL
+       REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_CS|CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA384", OPENSSL_ALGO_SHA384, CONST_CS|CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA512", OPENSSL_ALGO_SHA512, CONST_CS|CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("OPENSSL_ALGO_RMD160", OPENSSL_ALGO_RMD160, CONST_CS|CONST_PERSISTENT);
+#endif
 
        /* flags for S/MIME */
        REGISTER_LONG_CONSTANT("PKCS7_DETACHED", PKCS7_DETACHED, CONST_CS|CONST_PERSISTENT);