PHP Класс Neos\Flow\Security\Cryptography\RsaWalletServicePhp

Наследование: implements Neos\Flow\Security\Cryptography\RsaWalletServiceInterface
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
$keys array
$keystorePathAndFilename string
$openSSLConfiguration array The openSSL configuration
$saveKeysOnShutdown boolean

Открытые методы

Метод Описание
checkRSAEncryptedPassword ( string $encryptedPassword, string $passwordHash, string $salt, string $fingerprint ) : boolean Checks if the given encrypted password is correct by comparing it's md5 hash. The salt is appended to the decrypted password string before hashing.
decrypt ( string $cipher, string $fingerprint ) : string Decrypts the given cipher with the private key identified by the given fingerprint Note: You should never decrypt a password with this function. Use checkRSAEncryptedPassword() to check passwords!
destroyKeypair ( string $fingerprint ) : void Destroys the keypair identified by the given fingerprint
encryptWithPublicKey ( string $plaintext, string $fingerprint ) : string Encrypts the given plaintext with the public key identified by the given fingerprint
generateNewKeypair ( boolean $usedForPasswords = false ) : string Generates a new keypair and returns a fingerprint to refer to it
getFingerprintByPublicKey ( string $publicKeyString ) : string Generate an OpenSSH fingerprint for a RSA public key
getPublicKey ( string $fingerprint ) : OpenSslRsaKey Returns the public key for the given fingerprint
initializeObject ( ) : void Initializes the rsa wallet service by fetching the keys from the keystore file
injectSettings ( array $settings ) : void Injects the OpenSSL configuration to be used
registerKeyPairFromPrivateKeyString ( string $privateKeyString, boolean $usedForPasswords = false ) : string Adds the specified keypair to the local store and returns a fingerprint to refer to it.
registerPublicKeyFromString ( string $publicKeyString ) : string Adds the specified public key to the wallet and returns a fingerprint to refer to it.
shutdownObject ( ) : void Stores the keys array in the keystore file
sign ( string $plaintext, string $fingerprint ) : string Signs the given plaintext with the private key identified by the given fingerprint
verifySignature ( string $plaintext, string $signature, string $fingerprint ) : boolean Checks whether the given signature is valid for the given plaintext with the public key identified by the given fingerprint

Приватные методы

Метод Описание
decryptWithPrivateKey ( string $cipher, OpenSslRsaKey $privateKey ) : string Decrypts the given ciphertext with the given private key
getModulus ( resource $keyResource ) : string Exports the public modulus HEX string from the KeyResource
getPrivateKeyString ( resource $keyResource ) : string Exports the private key string from the KeyResource
getPublicKeyString ( resource $keyResource ) : string Exports the public key string from the KeyResource
sshConvertMpint ( string $bytes ) : string Convert a binary representation of a multiple precision integer to mpint format defined for SSH RSA key exchange (used in "ssh-rsa" format).
storeKeyPair ( OpenSslRsaKey $publicKey, OpenSslRsaKey $privateKey, boolean $usedForPasswords ) : string Stores the given keypair and returns its fingerprint.

Описание методов

checkRSAEncryptedPassword() публичный Метод

Checks if the given encrypted password is correct by comparing it's md5 hash. The salt is appended to the decrypted password string before hashing.
public checkRSAEncryptedPassword ( string $encryptedPassword, string $passwordHash, string $salt, string $fingerprint ) : boolean
$encryptedPassword string The received, RSA encrypted password to check
$passwordHash string The md5 hashed password string (md5(md5(password) . salt))
$salt string The salt used in the md5 password hash
$fingerprint string The fingerprint to identify the private key (RSA public key fingerprint)
Результат boolean TRUE if the password is correct

decrypt() публичный Метод

Decrypts the given cipher with the private key identified by the given fingerprint Note: You should never decrypt a password with this function. Use checkRSAEncryptedPassword() to check passwords!
public decrypt ( string $cipher, string $fingerprint ) : string
$cipher string cipher text to decrypt
$fingerprint string The fingerprint to identify the private key (RSA public key fingerprint)
Результат string The decrypted text

destroyKeypair() публичный Метод

Destroys the keypair identified by the given fingerprint
public destroyKeypair ( string $fingerprint ) : void
$fingerprint string The fingerprint
Результат void

encryptWithPublicKey() публичный Метод

Encrypts the given plaintext with the public key identified by the given fingerprint
public encryptWithPublicKey ( string $plaintext, string $fingerprint ) : string
$plaintext string The plaintext to encrypt
$fingerprint string The fingerprint to identify to correct public key
Результат string The ciphertext

generateNewKeypair() публичный Метод

Generates a new keypair and returns a fingerprint to refer to it
public generateNewKeypair ( boolean $usedForPasswords = false ) : string
$usedForPasswords boolean TRUE if this keypair should be used to encrypt passwords (then decryption won't be allowed!).
Результат string The RSA public key fingerprint for reference

getFingerprintByPublicKey() публичный Метод

See for reference of OpenSSH "ssh-rsa" key format. The fingerprint is obtained by applying an MD5 hash on the raw public key bytes. If you have a PEM encoded private key, you can generate the same fingerprint using this: ssh-keygen -yf my-key.pem > my-key.pub ssh-keygen -lf my-key.pub
public getFingerprintByPublicKey ( string $publicKeyString ) : string
$publicKeyString string RSA public key, PKCS1 encoded
Результат string The public key fingerprint

getPublicKey() публичный Метод

Returns the public key for the given fingerprint
public getPublicKey ( string $fingerprint ) : OpenSslRsaKey
$fingerprint string The fingerprint of the stored key
Результат OpenSslRsaKey The public key

initializeObject() публичный Метод

Initializes the rsa wallet service by fetching the keys from the keystore file
public initializeObject ( ) : void
Результат void

injectSettings() публичный Метод

Injects the OpenSSL configuration to be used
public injectSettings ( array $settings ) : void
$settings array
Результат void

registerKeyPairFromPrivateKeyString() публичный Метод

Adds the specified keypair to the local store and returns a fingerprint to refer to it.
public registerKeyPairFromPrivateKeyString ( string $privateKeyString, boolean $usedForPasswords = false ) : string
$privateKeyString string The private key in its string representation
$usedForPasswords boolean TRUE if this keypair should be used to encrypt passwords (then decryption won't be allowed!).
Результат string The RSA public key fingerprint for reference

registerPublicKeyFromString() публичный Метод

This is helpful if you have not private key and want to use this key only to verify incoming data.
public registerPublicKeyFromString ( string $publicKeyString ) : string
$publicKeyString string The public key in its string representation
Результат string The RSA public key fingerprint for reference

shutdownObject() публичный Метод

Stores the keys array in the keystore file
public shutdownObject ( ) : void
Результат void

sign() публичный Метод

Signs the given plaintext with the private key identified by the given fingerprint
public sign ( string $plaintext, string $fingerprint ) : string
$plaintext string The plaintext to sign
$fingerprint string The fingerprint to identify the private key (RSA public key fingerprint)
Результат string The signature of the given plaintext

verifySignature() публичный Метод

Checks whether the given signature is valid for the given plaintext with the public key identified by the given fingerprint
public verifySignature ( string $plaintext, string $signature, string $fingerprint ) : boolean
$plaintext string The plaintext to sign
$signature string The signature that should be verified
$fingerprint string The fingerprint to identify the public key (RSA public key fingerprint)
Результат boolean TRUE if the signature is correct for the given plaintext and public key

Описание свойств

$keys защищенное свойство

protected array $keys
Результат array

$keystorePathAndFilename защищенное свойство

protected string $keystorePathAndFilename
Результат string

$openSSLConfiguration защищенное свойство

The openSSL configuration
protected array $openSSLConfiguration
Результат array

$saveKeysOnShutdown защищенное свойство

protected bool $saveKeysOnShutdown
Результат boolean