Crypt/Math.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Crypt
- Subpackage
- Math
- Version
- $Id: Math.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Crypt_Math
Support for arbitrary precision mathematics in PHP.
Zend_Crypt_Math_BigInteger is a wrapper across three PHP extensions: bcmath, gmp and big_int. Since each offer similar functionality, but availability of each differs across installations of PHP, this wrapper attempts to select the fastest option available and encapsulate a subset of its functionality which all extensions share in common.
This class requires one of the three extensions to be available. BCMATH while the slowest, is available by default under Windows, and under Unix if PHP is compiled with the flag "--enable-bcmath". GMP requires the gmp library from http://www.swox.com/gmp/ and PHP compiled with the "--with-gmp" flag. BIG_INT support is available from a big_int PHP library available from only from PECL (a Windows port is not available).
- Parent(s)
- \Zend_Crypt_Math_BigInteger
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties


\Zend_Crypt_Math_BigInteger_Interface $_math = null
Holds an instance of one of the three arbitrary precision wrappers.
Inherited from: \Zend_Crypt_Math_BigInteger::$$_mathnull
Details- Type
- \Zend_Crypt_Math_BigInteger_Interface
- Inherited_from
- \Zend_Crypt_Math_BigInteger::$$_math
Methods


__call(string $methodName, array $args) : void
Redirect all public method calls to the wrapped extension object.
Inherited from: \Zend_Crypt_Math_BigInteger::__call()Name | Type | Description |
---|---|---|
$methodName | string | |
$args | array |
Exception | Description |
---|---|
\Zend_Crypt_Math_BigInteger_Exception |


__construct(string $extension = null) : void
Constructor; a Factory which detects a suitable PHP extension for arbitrary precision math and instantiates the suitable wrapper object.
Inherited from: \Zend_Crypt_Math_BigInteger::__construct()Name | Type | Description |
---|---|---|
$extension | string |
Exception | Description |
---|---|
\Zend_Crypt_Math_BigInteger_Exception |


_loadAdapter(string $extension = null) : void
Name | Type | Description |
---|---|---|
$extension | string |
Exception | Description |
---|---|
\Zend_Crypt_Math_BigInteger_Exception |


btwoc(string $long) : string
Get the big endian two's complement of a given big integer in binary notation
Name | Type | Description |
---|---|---|
$long | string |
Type | Description |
---|---|
string |


fromBinary(string $binary) : string
Translate a binary form into a big integer string
Name | Type | Description |
---|---|---|
$binary | string |
Type | Description |
---|---|
string |


rand(string | int $minimum, string | int $maximum) : string
Generate a pseudorandom number within the given range.
Will attempt to read from a systems RNG if it exists or else utilises a simple random character to maximum length process. Simplicity is a factor better left for development...
Name | Type | Description |
---|---|---|
$minimum | string | int | |
$maximum | string | int |
Type | Description |
---|---|
string |