OpenPGP_Crypt_Symmetric::getEncryptedData PHP Method

getEncryptedData() public static method

public static getEncryptedData ( $m )
    public static function getEncryptedData($m)
    {
        foreach ($m as $p) {
            if ($p instanceof OpenPGP_EncryptedDataPacket) {
                return $p;
            }
        }
        throw new Exception("Can only decrypt EncryptedDataPacket");
    }

Usage Example

 function decrypt($packet)
 {
     if (!is_object($packet)) {
         $packet = OpenPGP_Message::parse($packet);
     }
     if ($packet instanceof OpenPGP_SecretKeyPacket || $packet instanceof Crypt_RSA || $packet instanceof ArrayAccess && $packet[0] instanceof OpenPGP_SecretKeyPacket) {
         $keys = $packet;
         $message = $this->message;
     } else {
         $keys = $this->key;
         $message = $packet;
     }
     if (!$keys || !$message) {
         return NULL;
     }
     // Missing some data
     if (!$keys instanceof Crypt_RSA) {
         $keys = new self($keys);
     }
     foreach ($message as $p) {
         if ($p instanceof OpenPGP_AsymmetricSessionKeyPacket) {
             if ($keys instanceof Crypt_RSA) {
                 $sk = self::try_decrypt_session($keys, substr($p->encyrpted_data, 2));
             } else {
                 if (strlen(str_replace('0', '', $p->keyid)) < 1) {
                     foreach ($keys->key as $k) {
                         $sk = self::try_decrypt_session(self::convert_private_key($k), substr($p->encyrpted_data, 2));
                         if ($sk) {
                             break;
                         }
                     }
                 } else {
                     $key = $keys->private_key($p->keyid);
                     $sk = self::try_decrypt_session($key, substr($p->encrypted_data, 2));
                 }
             }
             if (!$sk) {
                 continue;
             }
             $r = OpenPGP_Crypt_Symmetric::decryptPacket(OpenPGP_Crypt_Symmetric::getEncryptedData($message), $sk[0], $sk[1]);
             if ($r) {
                 return $r;
             }
         }
     }
     return NULL;
     /* Failed */
 }
All Usage Examples Of OpenPGP_Crypt_Symmetric::getEncryptedData