PHP 클래스 Neos\Flow\Security\Cryptography\RsaWalletServicePhp

상속: implements Neos\Flow\Security\Cryptography\RsaWalletServiceInterface
파일 보기 프로젝트 열기: neos/flow-development-collection 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
$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