diff options
-rw-r--r-- | ext/openssl/openssl.c | 2 | ||||
-rw-r--r-- | ext/openssl/tests/012.phpt | 27 | ||||
-rw-r--r-- | ext/openssl/tests/public.key | 6 |
3 files changed, 34 insertions, 1 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 1f0b5142bb..1e60cdc438 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -4126,7 +4126,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 index 0000000000..dbd03ac0af --- /dev/null +++ b/ext/openssl/tests/012.phpt @@ -0,0 +1,27 @@ +--TEST-- +openssl_seal() error tests +--SKIPIF-- +<?php if (!extension_loaded("openssl")) print "skip"; ?> +--FILE-- +<?php +$data = "openssl_open() test"; +$pub_key = "file://" . dirname(__FILE__) . "/public.key"; +$wrong = "wrong"; + +openssl_seal($data, $sealed, $ekeys, array($pub_key)); // no output +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, $pub_key); +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() expects parameter 4 to be array, 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 index 0000000000..92021c1034 --- /dev/null +++ b/ext/openssl/tests/public.key @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLXp6PkCtbpV+P1gwFQWH6Ez0U +83uEmS8IGnpeI8Fk8rY/vHOZzZZaxRCw+loyc342qCDIQheMOCNm5Fkevz06q757 +/oooiLR3yryYGKiKG1IZIiplmtsC95oKrzUSKk60wuI1mbgpMUP5LKi/Tvxes5Pm +kUtXfimz2qgkeUcPpQIDAQAB +-----END PUBLIC KEY----- |