public function WardenAPI::decrypt in Warden 7
Same name and namespace in other branches
- 6 warden_api.inc \WardenAPI::decrypt()
Decrypt a message which was encrypted with the Warden private key.
Parameters
string $cypherText: The encrypted text
Return value
mixed The original data
Throws
Exception
File
- ./warden_api.inc, line 133 
- The API for communicating with the Warden server application.
Class
- WardenAPI
- @file The API for communicating with the Warden server application.
Code
public function decrypt($cypherText) {
  $envelope = json_decode(base64_decode($cypherText));
  if (!is_object($envelope) || empty($envelope->key) || empty($envelope->message)) {
    throw new Exception('Encrypted message is not understood');
  }
  $key = base64_decode($envelope->key);
  $message = base64_decode($envelope->message);
  $decrypted = '';
  $result = openssl_open($message, $decrypted, $key, $this
    ->getPublicKey());
  if ($result === FALSE) {
    throw new Exception('Unable to decrypt a message: ' . openssl_error_string());
  }
  return json_decode($decrypted);
}