Crypt_RSA
[ class tree: Crypt_RSA ] [ index: Crypt_RSA ] [ all elements ]

Class: Crypt_RSA_KeyPair

Source Location: /Crypt_RSA-1.2.1/RSA/KeyPair.php

Class Overview

Crypt_RSA_ErrorHandler
   |
   --Crypt_RSA_KeyPair

Crypt_RSA_KeyPair class, derived from Crypt_RSA_ErrorHandler


Author(s):

Version:

  • Release: @package_version@

Copyright:

  • 2005 Alexander Valyalkin

Methods


Inherited Variables

Inherited Methods

Class: Crypt_RSA_ErrorHandler

Crypt_RSA_ErrorHandler::getErrorHandler()
returns name of current error handler, or null if there is no error handler
Crypt_RSA_ErrorHandler::getErrorList()
Returns list of all errors, pushed to error list by $this->pushError()
Crypt_RSA_ErrorHandler::getLastError()
Returns last error from errors list or false, if list is empty
Crypt_RSA_ErrorHandler::isError()
Returns true if list of errors is not empty, else returns false
Crypt_RSA_ErrorHandler::pushError()
pushes error object $error to the error list
Crypt_RSA_ErrorHandler::setErrorHandler()
sets error handler to function with name $func_name.

Class Details

[line 133]
Crypt_RSA_KeyPair class, derived from Crypt_RSA_ErrorHandler

Provides the following functions:

  • generate($key) - generates new key pair
  • getPublicKey() - returns public key
  • getPrivateKey() - returns private key
  • getKeyLength() - returns bit key length
  • setRandomGenerator($func_name) - sets random generator to $func_name
  • fromPEMString($str) - retrieves keypair from PEM-encoded string
  • toPEMString() - stores keypair to PEM-encoded string
  • isEqual($keypair2) - compares current keypair to $keypair2
Example usage: // create new 1024-bit key pair $key_pair = new Crypt_RSA_KeyPair(1024);

// error check if ($key_pair->isError()) { echo "error while initializing Crypt_RSA_KeyPair object:\n"; $erorr = $key_pair->getLastError(); echo $error->getMessage(), "\n"; }

// get public key $public_key = $key_pair->getPublicKey();

// get private key $private_key = $key_pair->getPrivateKey();

// generate new 512-bit key pair $key_pair->generate(512);

// error check if ($key_pair->isError()) { echo "error while generating key pair:\n"; $erorr = $key_pair->getLastError(); echo $error->getMessage(), "\n"; }

// get key pair length $length = $key_pair->getKeyLength();

// set random generator to $func_name, where $func_name // consists name of random generator function. See comments // before setRandomGenerator() method for details $key_pair->setRandomGenerator($func_name);

// error check if ($key_pair->isError()) { echo "error while changing random generator:\n"; $erorr = $key_pair->getLastError(); echo $error->getMessage(), "\n"; }

// using factory() method instead of constructor (it returns PEAR_Error object on failure) $rsa_obj = &Crypt_RSA_KeyPair::factory($key_len); if (PEAR::isError($rsa_obj)) { echo "error: ", $rsa_obj->getMessage(), "\n"; }

// read key pair from PEM-encoded string: $str = "-----BEGIN RSA PRIVATE KEY-----" . "MCsCAQACBHr5LDkCAwEAAQIEBc6jbQIDAOCfAgMAjCcCAk3pAgJMawIDAL41" . "-----END RSA PRIVATE KEY-----"; $keypair = Crypt_RSA_KeyPair::fromPEMString($str);

// read key pair from .pem file 'private.pem': $str = file_get_contents('private.pem'); $keypair = Crypt_RSA_KeyPair::fromPEMString($str);

// generate and write 1024-bit key pair to .pem file 'private_new.pem' $keypair = new Crypt_RSA_KeyPair(1024); $str = $keypair->toPEMString(); file_put_contents('private_new.pem', $str);

// compare $keypair1 to $keypair2 if ($keypair1->isEqual($keypair2)) { echo "keypair1 = keypair2\n"; } else { echo "keypair1 != keypair2\n"; }



[ Top ]


Method Detail

Crypt_RSA_KeyPair (Constructor)   [line 359]

Crypt_RSA_KeyPair Crypt_RSA_KeyPair( int $key_len, [string $wrapper_name = 'default'], [string $error_handler = ''], [callback $random_generator = null])

Crypt_RSA_KeyPair constructor.

Wrapper: name of math wrapper, which will be used to perform different operations with big integers. See contents of Crypt/RSA/Math folder for examples of wrappers. Read docs/Crypt_RSA/docs/math_wrappers.txt for details.

  • Access: public

Parameters:

int   $key_len   —  bit length of key pair, which will be generated in constructor
string   $wrapper_name   —  wrapper name
string   $error_handler   —  name of error handler function
callback   $random_generator   —  function which will be used as random generator

[ Top ]

factory   [line 487]

object new &factory( int $key_len, [string $wrapper_name = 'default'], [string $error_handler = ''], [callback $random_generator = null])

Crypt_RSA_KeyPair factory.

Wrapper - Name of math wrapper, which will be used to perform different operations with big integers. See contents of Crypt/RSA/Math folder for examples of wrappers. Read docs/Crypt_RSA/docs/math_wrappers.txt for details.

  • Return: Crypt_RSA_KeyPair object on success or PEAR_Error object on failure
  • Access: public

Parameters:

int   $key_len   —  bit length of key pair, which will be generated in constructor
string   $wrapper_name   —  wrapper name
string   $error_handler   —  name of error handler function
callback   $random_generator   —  function which will be used as random generator

[ Top ]

fromPEMString   [line 697]

Crypt_RSA_KeyPair &fromPEMString( string $str, [string $wrapper_name = 'default'], [string $error_handler = ''])

Retrieves RSA keypair from PEM-encoded string, containing RSA private key.

Example of such string: -----BEGIN RSA PRIVATE KEY----- MCsCAQACBHtvbSECAwEAAQIEeYrk3QIDAOF3AgMAjCcCAmdnAgJMawIDALEk -----END RSA PRIVATE KEY-----

Wrapper: Name of math wrapper, which will be used to perform different operations with big integers. See contents of Crypt/RSA/Math folder for examples of wrappers. Read docs/Crypt_RSA/docs/math_wrappers.txt for details.

  • Return: object on success, PEAR_Error object on error
  • Access: public

Parameters:

string   $str   —  PEM-encoded string
string   $wrapper_name   —  Wrapper name
string   $error_handler   —  name of error handler function

[ Top ]

generate   [line 507]

bool generate( [int $key_len = null])

Generates new Crypt_RSA key pair with length $key_len.

If $key_len is missed, use an old key length from $this->_key_len

  • Return: true on success or false on error
  • Access: public

Parameters:

int   $key_len   —  bit length of key pair, which will be generated

[ Top ]

getKeyLength   [line 672]

int getKeyLength( )

Returns length of each key in the key pair
  • Return: bit length of each key in key pair
  • Access: public

[ Top ]

getPrivateKey   [line 629]

object private getPrivateKey( )

Returns private key from the pair
  • Return: key object of class Crypt_RSA_Key
  • Access: public

[ Top ]

getPublicKey   [line 618]

object public getPublicKey( )

Returns public key from the pair
  • Return: key object of class Crypt_RSA_Key
  • Access: public

[ Top ]

isEqual   [line 792]

bool isEqual( Crypt_RSA_KeyPair $key_pair)

Compares keypairs in Crypt_RSA_KeyPair objects $this and $key_pair
  • Return: true, if keypair stored in $this equal to keypair stored in $key_pair
  • Access: public

Parameters:

Crypt_RSA_KeyPair   $key_pair   —  keypair to compare

[ Top ]

setRandomGenerator   [line 646]

bool setRandomGenerator( [string $random_generator = null])

Sets name of random generator function for key generation.

If parameter is skipped, then sets to default random generator.

Random generator function must return integer with at least 8 lower significant bits, which will be used as random values.

  • Return: true on success or false on error
  • Access: public

Parameters:

string   $random_generator   —  name of random generator function

[ Top ]

toPEMString   [line 758]

string toPEMString( )

converts keypair to PEM-encoded string, which can be stroed in .pem compatible files, contianing RSA private key.
  • Return: PEM-encoded keypair on success, false on error
  • Access: public

[ Top ]


Documentation generated on Mon, 11 Mar 2019 15:28:16 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.