PHP Class ParagonIE\Halite\KeyFactory

Show file Open project: paragonie/halite Class Usage Examples

Public Methods

Method Description
deriveAuthenticationKey ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : AuthenticationKey Derive an authentication key (symmetric) from a password and salt
deriveEncryptionKey ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : EncryptionKey Derive an encryption key (symmetric-key cryptography) from a password and salt
deriveEncryptionKeyPair ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : EncryptionKeyPair Derive a key pair for public key encryption from a password and salt
deriveSignatureKeyPair ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : SignatureKeyPair Derive a key pair for public key signatures from a password and salt
export ( $key ) : HiddenString Export a cryptography key to a string (with a checksum)
generateAuthenticationKey ( string &$secretKey = '' ) : AuthenticationKey Generate an an authentication key (symmetric-key cryptography)
generateEncryptionKey ( string &$secretKey = '' ) : EncryptionKey Generate an an encryption key (symmetric-key cryptography)
generateEncryptionKeyPair ( string &$secretKey = '' ) : EncryptionKeyPair Generate a key pair for public key encryption
generateSignatureKeyPair ( string &$secretKey = '' ) : SignatureKeyPair Generate a key pair for public key digital signatures
getKeyDataFromString ( string $data ) : string Take a stored key string, get the derived key (after verifying the checksum)
getSecurityLevels ( string $level = self::INTERACTIVE ) : array Returns a 2D array [OPSLIMIT, MEMLIMIT] for the appropriate security level.
importAuthenticationKey ( HiddenString $keyData ) : AuthenticationKey Load a symmetric authentication key from a string
importEncryptionKey ( HiddenString $keyData ) : EncryptionKey Load a symmetric encryption key from a string
importEncryptionKeyPair ( HiddenString $keyData ) : EncryptionKeyPair Load an asymmetric encryption key pair from a string
importEncryptionPublicKey ( HiddenString $keyData ) : EncryptionPublicKey Load, specifically, an encryption public key from a string
importEncryptionSecretKey ( HiddenString $keyData ) : EncryptionSecretKey Load, specifically, an encryption secret key from a string
importSignatureKeyPair ( HiddenString $keyData ) : SignatureKeyPair Load an asymmetric signature key pair from a string
importSignaturePublicKey ( HiddenString $keyData ) : SignaturePublicKey Load, specifically, a signature public key from a string
importSignatureSecretKey ( HiddenString $keyData ) : SignatureSecretKey Load, specifically, a signature secret key from a string
loadAuthenticationKey ( string $filePath ) : AuthenticationKey Load a symmetric authentication key from a file
loadEncryptionKey ( string $filePath ) : EncryptionKey Load a symmetric encryption key from a file
loadEncryptionKeyPair ( string $filePath ) : EncryptionKeyPair Load an asymmetric encryption key pair from a file
loadEncryptionPublicKey ( string $filePath ) : EncryptionPublicKey Load, specifically, an encryption public key from a file
loadEncryptionSecretKey ( string $filePath ) : EncryptionSecretKey Load, specifically, an encryption public key from a file
loadSignatureKeyPair ( string $filePath ) : SignatureKeyPair Load an asymmetric signature key pair from a file
loadSignaturePublicKey ( string $filePath ) : SignaturePublicKey Load, specifically, a signature public key from a file
loadSignatureSecretKey ( string $filePath ) : SignatureSecretKey Load, specifically, a signature secret key from a file
save ( Key | KeyPair $key, string $filename = '' ) : boolean Save a key to a file

Protected Methods

Method Description
loadKeyFile ( string $filePath ) : HiddenString Read a key from a file, verify its checksum
saveKeyFile ( string $filePath, string $keyData ) : boolean Save a key to a file

Method Details

deriveAuthenticationKey() public static method

Derive an authentication key (symmetric) from a password and salt
public static deriveAuthenticationKey ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : AuthenticationKey
$password HiddenString
$salt string
$level string Security level for KDF
return AuthenticationKey

deriveEncryptionKey() public static method

Derive an encryption key (symmetric-key cryptography) from a password and salt
public static deriveEncryptionKey ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : EncryptionKey
$password HiddenString
$salt string
$level string Security level for KDF
return EncryptionKey

deriveEncryptionKeyPair() public static method

Derive a key pair for public key encryption from a password and salt
public static deriveEncryptionKeyPair ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : EncryptionKeyPair
$password HiddenString
$salt string
$level string Security level for KDF
return EncryptionKeyPair

deriveSignatureKeyPair() public static method

Derive a key pair for public key signatures from a password and salt
public static deriveSignatureKeyPair ( HiddenString $password, string $salt, string $level = self::INTERACTIVE ) : SignatureKeyPair
$password HiddenString
$salt string
$level string Security level for KDF
return SignatureKeyPair

export() public static method

Export a cryptography key to a string (with a checksum)
public static export ( $key ) : HiddenString
$key
return HiddenString

generateAuthenticationKey() public static method

Generate an an authentication key (symmetric-key cryptography)
public static generateAuthenticationKey ( string &$secretKey = '' ) : AuthenticationKey
$secretKey string
return AuthenticationKey

generateEncryptionKey() public static method

Generate an an encryption key (symmetric-key cryptography)
public static generateEncryptionKey ( string &$secretKey = '' ) : EncryptionKey
$secretKey string
return EncryptionKey

generateEncryptionKeyPair() public static method

Generate a key pair for public key encryption
public static generateEncryptionKeyPair ( string &$secretKey = '' ) : EncryptionKeyPair
$secretKey string
return EncryptionKeyPair

generateSignatureKeyPair() public static method

Generate a key pair for public key digital signatures
public static generateSignatureKeyPair ( string &$secretKey = '' ) : SignatureKeyPair
$secretKey string
return SignatureKeyPair

getKeyDataFromString() public static method

Take a stored key string, get the derived key (after verifying the checksum)
public static getKeyDataFromString ( string $data ) : string
$data string
return string

getSecurityLevels() public static method

Returns a 2D array [OPSLIMIT, MEMLIMIT] for the appropriate security level.
public static getSecurityLevels ( string $level = self::INTERACTIVE ) : array
$level string
return array

importAuthenticationKey() public static method

Load a symmetric authentication key from a string
public static importAuthenticationKey ( HiddenString $keyData ) : AuthenticationKey
$keyData HiddenString
return AuthenticationKey

importEncryptionKey() public static method

Load a symmetric encryption key from a string
public static importEncryptionKey ( HiddenString $keyData ) : EncryptionKey
$keyData HiddenString
return EncryptionKey

importEncryptionKeyPair() public static method

Load an asymmetric encryption key pair from a string
public static importEncryptionKeyPair ( HiddenString $keyData ) : EncryptionKeyPair
$keyData HiddenString
return EncryptionKeyPair

importEncryptionPublicKey() public static method

Load, specifically, an encryption public key from a string
public static importEncryptionPublicKey ( HiddenString $keyData ) : EncryptionPublicKey
$keyData HiddenString
return EncryptionPublicKey

importEncryptionSecretKey() public static method

Load, specifically, an encryption secret key from a string
public static importEncryptionSecretKey ( HiddenString $keyData ) : EncryptionSecretKey
$keyData HiddenString
return EncryptionSecretKey

importSignatureKeyPair() public static method

Load an asymmetric signature key pair from a string
public static importSignatureKeyPair ( HiddenString $keyData ) : SignatureKeyPair
$keyData HiddenString
return SignatureKeyPair

importSignaturePublicKey() public static method

Load, specifically, a signature public key from a string
public static importSignaturePublicKey ( HiddenString $keyData ) : SignaturePublicKey
$keyData HiddenString
return SignaturePublicKey

importSignatureSecretKey() public static method

Load, specifically, a signature secret key from a string
public static importSignatureSecretKey ( HiddenString $keyData ) : SignatureSecretKey
$keyData HiddenString
return SignatureSecretKey

loadAuthenticationKey() public static method

Load a symmetric authentication key from a file
public static loadAuthenticationKey ( string $filePath ) : AuthenticationKey
$filePath string
return AuthenticationKey

loadEncryptionKey() public static method

Load a symmetric encryption key from a file
public static loadEncryptionKey ( string $filePath ) : EncryptionKey
$filePath string
return EncryptionKey

loadEncryptionKeyPair() public static method

Load an asymmetric encryption key pair from a file
public static loadEncryptionKeyPair ( string $filePath ) : EncryptionKeyPair
$filePath string
return EncryptionKeyPair

loadEncryptionPublicKey() public static method

Load, specifically, an encryption public key from a file
public static loadEncryptionPublicKey ( string $filePath ) : EncryptionPublicKey
$filePath string
return EncryptionPublicKey

loadEncryptionSecretKey() public static method

Load, specifically, an encryption public key from a file
public static loadEncryptionSecretKey ( string $filePath ) : EncryptionSecretKey
$filePath string
return EncryptionSecretKey

loadKeyFile() protected static method

Read a key from a file, verify its checksum
protected static loadKeyFile ( string $filePath ) : HiddenString
$filePath string
return HiddenString

loadSignatureKeyPair() public static method

Load an asymmetric signature key pair from a file
public static loadSignatureKeyPair ( string $filePath ) : SignatureKeyPair
$filePath string
return SignatureKeyPair

loadSignaturePublicKey() public static method

Load, specifically, a signature public key from a file
public static loadSignaturePublicKey ( string $filePath ) : SignaturePublicKey
$filePath string
return SignaturePublicKey

loadSignatureSecretKey() public static method

Load, specifically, a signature secret key from a file
public static loadSignatureSecretKey ( string $filePath ) : SignatureSecretKey
$filePath string
return SignatureSecretKey

save() public static method

Save a key to a file
public static save ( Key | KeyPair $key, string $filename = '' ) : boolean
$key Key | KeyPair
$filename string
return boolean

saveKeyFile() protected static method

Save a key to a file
protected static saveKeyFile ( string $filePath, string $keyData ) : boolean
$filePath string
$keyData string
return boolean