]> granicus.if.org Git - php/commitdiff
Fix error message
authorHenrique do Nascimento Angelo <hnangelo@php.net>
Tue, 15 Jul 2008 03:21:56 +0000 (03:21 +0000)
committerHenrique do Nascimento Angelo <hnangelo@php.net>
Tue, 15 Jul 2008 03:21:56 +0000 (03:21 +0000)
ext/openssl/openssl.c
ext/openssl/tests/012.phpt [new file with mode: 0644]
ext/openssl/tests/public.key [new file with mode: 0644]

index 0139a5e3f953770e024b7b475fa025c1d89a24b9..4d8c4a68ba9755f88296645c049f75d92cb379c9 100644 (file)
@@ -4164,7 +4164,7 @@ PHP_FUNCTION(openssl_seal)
                                &pos) == SUCCESS) {
                pkeys[i] = php_openssl_evp_from_zval(pubkey, 1, NULL, 0, &key_resources[i] TSRMLS_CC);
                if (pkeys[i] == NULL) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "not a public key (%dth member of pubkeys)", i);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "not a public key (%dth member of pubkeys)", i+1);
                        RETVAL_FALSE;
                        goto clean_exit;
                }
diff --git a/ext/openssl/tests/012.phpt b/ext/openssl/tests/012.phpt
new file mode 100644 (file)
index 0000000..5200980
--- /dev/null
@@ -0,0 +1,33 @@
+--TEST--
+openssl_seal() error tests
+--SKIPIF--
+<?php if (!extension_loaded("openssl")) print "skip"; ?>
+--FILE--
+<?php
+$data = b"openssl_open() test";
+$pub_key = "file://" . dirname(__FILE__) . "/public.key";
+$wrong = "wrong";
+
+openssl_seal($data, $sealed, $ekeys, array($pub_key));
+openssl_seal($data, $sealed, $ekeys, array($pub_key, $pub_key));        // no output
+openssl_seal($data, $sealed, $ekeys, array($pub_key, $wrong));
+openssl_seal($data, $sealed, $ekeys, array($pub_key, (binary)$wrong));
+openssl_seal($data, $sealed, $ekeys, $pub_key);
+openssl_seal($data, $sealed, $ekeys, (binary)$wrong);
+openssl_seal($data, $sealed, $ekeys, array());
+openssl_seal($data, $sealed, $ekeys, array($wrong));
+?>
+--EXPECTF--
+
+Warning: openssl_seal(): not a public key (2th member of pubkeys) in %s on line %d
+
+Warning: openssl_seal(): not a public key (2th member of pubkeys) in %s on line %d
+
+Warning: openssl_seal() expects parameter 4 to be array, Unicode string given in %s on line %d
+
+Warning: openssl_seal() expects parameter 4 to be array, binary string given in %s on line %d
+
+Warning: openssl_seal(): Fourth argument to openssl_seal() must be a non-empty array in %s on line %d
+
+Warning: openssl_seal(): not a public key (1th member of pubkeys) in %s on line %d
+
diff --git a/ext/openssl/tests/public.key b/ext/openssl/tests/public.key
new file mode 100644 (file)
index 0000000..92021c1
--- /dev/null
@@ -0,0 +1,6 @@
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLXp6PkCtbpV+P1gwFQWH6Ez0U
+83uEmS8IGnpeI8Fk8rY/vHOZzZZaxRCw+loyc342qCDIQheMOCNm5Fkevz06q757
+/oooiLR3yryYGKiKG1IZIiplmtsC95oKrzUSKk60wuI1mbgpMUP5LKi/Tvxes5Pm
+kUtXfimz2qgkeUcPpQIDAQAB
+-----END PUBLIC KEY-----